import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Integration Instance resource in Oracle Cloud Infrastructure Integration service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/integration/latest/IntegrationInstance
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/integration
 *
 * Creates a new Integration Instance.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testIntegrationInstance = new oci.integration.IntegrationInstance("test_integration_instance", {
 *     compartmentId: compartmentId,
 *     displayName: integrationInstanceDisplayName,
 *     integrationInstanceType: integrationInstanceIntegrationInstanceType,
 *     isByol: integrationInstanceIsByol === "true",
 *     messagePacks: Number(integrationInstanceMessagePacks),
 *     alternateCustomEndpoints: [{
 *         hostname: integrationInstanceAlternateCustomEndpointsHostname,
 *         certificateSecretId: testSecret.id,
 *     }],
 *     consumptionModel: integrationInstanceConsumptionModel,
 *     customEndpoint: {
 *         hostname: integrationInstanceCustomEndpointHostname,
 *         certificateSecretId: testSecret.id,
 *     },
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     domainId: testDomain.id,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     idcsAt: integrationInstanceIdcsAt,
 *     isDisasterRecoveryEnabled: integrationInstanceIsDisasterRecoveryEnabled === "true",
 *     isFileServerEnabled: integrationInstanceIsFileServerEnabled === "true",
 *     isVisualBuilderEnabled: integrationInstanceIsVisualBuilderEnabled === "true",
 *     networkEndpointDetails: {
 *         networkEndpointType: integrationInstanceNetworkEndpointDetailsNetworkEndpointType,
 *         allowlistedHttpIps: integrationInstanceNetworkEndpointDetailsAllowlistedHttpIps,
 *         allowlistedHttpVcns: [{
 *             id: integrationInstanceNetworkEndpointDetailsAllowlistedHttpVcnsId,
 *             allowlistedIps: integrationInstanceNetworkEndpointDetailsAllowlistedHttpVcnsAllowlistedIps,
 *         }],
 *         designTime: {
 *             allowlistedHttpIps: integrationInstanceNetworkEndpointDetailsDesignTimeAllowlistedHttpIps,
 *             allowlistedHttpVcns: [{
 *                 id: integrationInstanceNetworkEndpointDetailsDesignTimeAllowlistedHttpVcnsId,
 *                 allowlistedIps: integrationInstanceNetworkEndpointDetailsDesignTimeAllowlistedHttpVcnsAllowlistedIps,
 *             }],
 *         },
 *         isIntegrationVcnAllowlisted: integrationInstanceNetworkEndpointDetailsIsIntegrationVcnAllowlisted === "true",
 *         runtime: {
 *             allowlistedHttpIps: integrationInstanceNetworkEndpointDetailsRuntimeAllowlistedHttpIps,
 *             allowlistedHttpVcns: [{
 *                 id: integrationInstanceNetworkEndpointDetailsRuntimeAllowlistedHttpVcnsId,
 *                 allowlistedIps: integrationInstanceNetworkEndpointDetailsRuntimeAllowlistedHttpVcnsAllowlistedIps,
 *             }],
 *         },
 *     },
 *     securityAttributes: {
 *         "oracle-zpr.sensitivity.value": "low",
 *         "oracle-zpr.sensitivity.mode": "enforce",
 *     },
 *     shape: integrationInstanceShape,
 *     state: integrationInstanceTargetState,
 * });
 * ```
 *
 * ## Import
 *
 * IntegrationInstances can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Integration/integrationInstance:IntegrationInstance test_integration_instance "id"
 * ```
 */
export declare class IntegrationInstance extends pulumi.CustomResource {
    /**
     * Get an existing IntegrationInstance 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?: IntegrationInstanceState, opts?: pulumi.CustomResourceOptions): IntegrationInstance;
    /**
     * Returns true if the given object is an instance of IntegrationInstance.  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 IntegrationInstance;
    /**
     * (Updatable) A list of alternate custom endpoints to be used for the integration instance URL (contact Oracle for alternateCustomEndpoints availability for a specific instance).
     */
    readonly alternateCustomEndpoints: pulumi.Output<outputs.Integration.IntegrationInstanceAlternateCustomEndpoint[]>;
    /**
     * A list of associated attachments to other services
     */
    readonly attachments: pulumi.Output<outputs.Integration.IntegrationInstanceAttachment[]>;
    /**
     * (Updatable) Compartment Identifier.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Optional parameter specifying which entitlement to use for billing purposes. Only required if the account possesses more than one entitlement.
     */
    readonly consumptionModel: pulumi.Output<string>;
    /**
     * (Updatable) An optional property when incremented triggers Convert Instance. Could be set to any integer value.
     */
    readonly convertInstanceTrigger: pulumi.Output<number | undefined>;
    /**
     * (Updatable) Details for a custom endpoint for the integration instance (update).
     */
    readonly customEndpoint: pulumi.Output<outputs.Integration.IntegrationInstanceCustomEndpoint>;
    /**
     * Data retention period set for given integration instance
     */
    readonly dataRetentionPeriod: pulumi.Output<string | undefined>;
    /**
     * (Updatable) Usage of predefined tag keys. These predefined keys are scoped to namespaces. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) An optional property when incremented triggers Disable Process Automation. Could be set to any integer value.
     */
    readonly disableProcessAutomationTrigger: pulumi.Output<number | undefined>;
    /**
     * Disaster recovery details for the integration instance created in the region.
     */
    readonly disasterRecoveryDetails: pulumi.Output<outputs.Integration.IntegrationInstanceDisasterRecoveryDetail[]>;
    /**
     * (Updatable) Integration Instance Identifier.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * The OCID of the identity domain, that will be used to determine the  corresponding Idcs Stripe and create an Idcs application within the stripe.  This parameter is mutually exclusive with parameter: idcsAt, i.e only one of  two parameters should be specified.
     */
    readonly domainId: pulumi.Output<string | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Enable Process Automation. Could be set to any integer value.
     */
    readonly enableProcessAutomationTrigger: pulumi.Output<number | undefined>;
    readonly extendDataRetentionTrigger: pulumi.Output<number | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Failover. Could be set to any integer value.
     */
    readonly failoverTrigger: pulumi.Output<number | 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"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) IDCS Authentication token. This is required for all realms with IDCS. Its optional as its not required for non IDCS realms.
     */
    readonly idcsAt: pulumi.Output<string | undefined>;
    /**
     * Information for IDCS access
     */
    readonly idcsInfos: pulumi.Output<outputs.Integration.IntegrationInstanceIdcsInfo[]>;
    readonly instanceDesignTimeUrl: pulumi.Output<string>;
    /**
     * The Integration Instance URL.
     */
    readonly instanceUrl: pulumi.Output<string>;
    /**
     * (Updatable) Standard or Enterprise type, Oracle Integration Generation 2 uses ENTERPRISE and STANDARD, Oracle Integration 3 uses ENTERPRISEX and STANDARDX
     */
    readonly integrationInstanceType: pulumi.Output<string>;
    /**
     * (Updatable) Bring your own license.
     */
    readonly isByol: pulumi.Output<boolean>;
    /**
     * Is Disaster Recovery enabled or not.
     */
    readonly isDisasterRecoveryEnabled: pulumi.Output<boolean>;
    /**
     * (Updatable) The file server is enabled or not.
     */
    readonly isFileServerEnabled: pulumi.Output<boolean>;
    /**
     * (Updatable) Visual Builder is enabled or not.
     */
    readonly isVisualBuilderEnabled: pulumi.Output<boolean>;
    /**
     * Additional details of lifecycleState or substates
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * OCID of LogAnalytics LogGroup, enabled for given integration instance
     */
    readonly logGroupId: pulumi.Output<string | undefined>;
    /**
     * (Updatable) The number of configured message packs
     */
    readonly messagePacks: pulumi.Output<number>;
    /**
     * Base representation of a network endpoint.
     */
    readonly networkEndpointDetails: pulumi.Output<outputs.Integration.IntegrationInstanceNetworkEndpointDetails>;
    /**
     * Base representation for Outbound Connection (Reverse Connection).
     */
    readonly privateEndpointOutboundConnections: pulumi.Output<outputs.Integration.IntegrationInstancePrivateEndpointOutboundConnection[]>;
    /**
     * (Updatable) Security attributes for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{
     * "oracle-zpr.sensitivity.value" = "low"
     * "oracle-zpr.sensitivity.mode" = "enforce"
     * }`
     */
    readonly securityAttributes: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Shape
     */
    readonly shape: pulumi.Output<string>;
    /**
     * (Updatable) The target state for the instance. Could be set to ACTIVE or INACTIVE
     *
     *
     * ** 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 state: pulumi.Output<string>;
    /**
     * An message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly stateMessage: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The time the the Integration Instance was created. An RFC3339 formatted datetime string.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time the IntegrationInstance was updated. An RFC3339 formatted datetime string.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a IntegrationInstance 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: IntegrationInstanceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering IntegrationInstance resources.
 */
export interface IntegrationInstanceState {
    /**
     * (Updatable) A list of alternate custom endpoints to be used for the integration instance URL (contact Oracle for alternateCustomEndpoints availability for a specific instance).
     */
    alternateCustomEndpoints?: pulumi.Input<pulumi.Input<inputs.Integration.IntegrationInstanceAlternateCustomEndpoint>[] | undefined>;
    /**
     * A list of associated attachments to other services
     */
    attachments?: pulumi.Input<pulumi.Input<inputs.Integration.IntegrationInstanceAttachment>[] | undefined>;
    /**
     * (Updatable) Compartment Identifier.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Optional parameter specifying which entitlement to use for billing purposes. Only required if the account possesses more than one entitlement.
     */
    consumptionModel?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Convert Instance. Could be set to any integer value.
     */
    convertInstanceTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Details for a custom endpoint for the integration instance (update).
     */
    customEndpoint?: pulumi.Input<inputs.Integration.IntegrationInstanceCustomEndpoint | undefined>;
    /**
     * Data retention period set for given integration instance
     */
    dataRetentionPeriod?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Usage of predefined tag keys. These predefined keys are scoped to namespaces. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Disable Process Automation. Could be set to any integer value.
     */
    disableProcessAutomationTrigger?: pulumi.Input<number | undefined>;
    /**
     * Disaster recovery details for the integration instance created in the region.
     */
    disasterRecoveryDetails?: pulumi.Input<pulumi.Input<inputs.Integration.IntegrationInstanceDisasterRecoveryDetail>[] | undefined>;
    /**
     * (Updatable) Integration Instance Identifier.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the identity domain, that will be used to determine the  corresponding Idcs Stripe and create an Idcs application within the stripe.  This parameter is mutually exclusive with parameter: idcsAt, i.e only one of  two parameters should be specified.
     */
    domainId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Enable Process Automation. Could be set to any integer value.
     */
    enableProcessAutomationTrigger?: pulumi.Input<number | undefined>;
    extendDataRetentionTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Failover. Could be set to any integer value.
     */
    failoverTrigger?: pulumi.Input<number | 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) IDCS Authentication token. This is required for all realms with IDCS. Its optional as its not required for non IDCS realms.
     */
    idcsAt?: pulumi.Input<string | undefined>;
    /**
     * Information for IDCS access
     */
    idcsInfos?: pulumi.Input<pulumi.Input<inputs.Integration.IntegrationInstanceIdcsInfo>[] | undefined>;
    instanceDesignTimeUrl?: pulumi.Input<string | undefined>;
    /**
     * The Integration Instance URL.
     */
    instanceUrl?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Standard or Enterprise type, Oracle Integration Generation 2 uses ENTERPRISE and STANDARD, Oracle Integration 3 uses ENTERPRISEX and STANDARDX
     */
    integrationInstanceType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Bring your own license.
     */
    isByol?: pulumi.Input<boolean | undefined>;
    /**
     * Is Disaster Recovery enabled or not.
     */
    isDisasterRecoveryEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) The file server is enabled or not.
     */
    isFileServerEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Visual Builder is enabled or not.
     */
    isVisualBuilderEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Additional details of lifecycleState or substates
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * OCID of LogAnalytics LogGroup, enabled for given integration instance
     */
    logGroupId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The number of configured message packs
     */
    messagePacks?: pulumi.Input<number | undefined>;
    /**
     * Base representation of a network endpoint.
     */
    networkEndpointDetails?: pulumi.Input<inputs.Integration.IntegrationInstanceNetworkEndpointDetails | undefined>;
    /**
     * Base representation for Outbound Connection (Reverse Connection).
     */
    privateEndpointOutboundConnections?: pulumi.Input<pulumi.Input<inputs.Integration.IntegrationInstancePrivateEndpointOutboundConnection>[] | undefined>;
    /**
     * (Updatable) Security attributes for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{
     * "oracle-zpr.sensitivity.value" = "low"
     * "oracle-zpr.sensitivity.mode" = "enforce"
     * }`
     */
    securityAttributes?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Shape
     */
    shape?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The target state for the instance. Could be set to ACTIVE or INACTIVE
     *
     *
     * ** 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
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * An message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    stateMessage?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The time the the Integration Instance was created. An RFC3339 formatted datetime string.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time the IntegrationInstance was updated. An RFC3339 formatted datetime string.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a IntegrationInstance resource.
 */
export interface IntegrationInstanceArgs {
    /**
     * (Updatable) A list of alternate custom endpoints to be used for the integration instance URL (contact Oracle for alternateCustomEndpoints availability for a specific instance).
     */
    alternateCustomEndpoints?: pulumi.Input<pulumi.Input<inputs.Integration.IntegrationInstanceAlternateCustomEndpoint>[] | undefined>;
    /**
     * (Updatable) Compartment Identifier.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * Optional parameter specifying which entitlement to use for billing purposes. Only required if the account possesses more than one entitlement.
     */
    consumptionModel?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Convert Instance. Could be set to any integer value.
     */
    convertInstanceTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Details for a custom endpoint for the integration instance (update).
     */
    customEndpoint?: pulumi.Input<inputs.Integration.IntegrationInstanceCustomEndpoint | undefined>;
    /**
     * Data retention period set for given integration instance
     */
    dataRetentionPeriod?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Usage of predefined tag keys. These predefined keys are scoped to namespaces. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Disable Process Automation. Could be set to any integer value.
     */
    disableProcessAutomationTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Integration Instance Identifier.
     */
    displayName: pulumi.Input<string>;
    /**
     * The OCID of the identity domain, that will be used to determine the  corresponding Idcs Stripe and create an Idcs application within the stripe.  This parameter is mutually exclusive with parameter: idcsAt, i.e only one of  two parameters should be specified.
     */
    domainId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Enable Process Automation. Could be set to any integer value.
     */
    enableProcessAutomationTrigger?: pulumi.Input<number | undefined>;
    extendDataRetentionTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Failover. Could be set to any integer value.
     */
    failoverTrigger?: pulumi.Input<number | 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) IDCS Authentication token. This is required for all realms with IDCS. Its optional as its not required for non IDCS realms.
     */
    idcsAt?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Standard or Enterprise type, Oracle Integration Generation 2 uses ENTERPRISE and STANDARD, Oracle Integration 3 uses ENTERPRISEX and STANDARDX
     */
    integrationInstanceType: pulumi.Input<string>;
    /**
     * (Updatable) Bring your own license.
     */
    isByol: pulumi.Input<boolean>;
    /**
     * Is Disaster Recovery enabled or not.
     */
    isDisasterRecoveryEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) The file server is enabled or not.
     */
    isFileServerEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Visual Builder is enabled or not.
     */
    isVisualBuilderEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * OCID of LogAnalytics LogGroup, enabled for given integration instance
     */
    logGroupId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The number of configured message packs
     */
    messagePacks: pulumi.Input<number>;
    /**
     * Base representation of a network endpoint.
     */
    networkEndpointDetails?: pulumi.Input<inputs.Integration.IntegrationInstanceNetworkEndpointDetails | undefined>;
    /**
     * (Updatable) Security attributes for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{
     * "oracle-zpr.sensitivity.value" = "low"
     * "oracle-zpr.sensitivity.mode" = "enforce"
     * }`
     */
    securityAttributes?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Shape
     */
    shape?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The target state for the instance. Could be set to ACTIVE or INACTIVE
     *
     *
     * ** 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
     */
    state?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=integrationInstance.d.ts.map