import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Service Connector resource in Oracle Cloud Infrastructure Service Connector Hub service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/serviceconnectors/latest/ServiceConnector
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/service_connector_hub
 *
 * Creates a new connector in the specified compartment.
 * A connector is a logically defined flow for moving data from
 * a source service to a destination service in Oracle Cloud Infrastructure.
 * For more information, see
 * [Creating a Connector](https://docs.cloud.oracle.com/iaas/Content/connector-hub/create-service-connector.htm).
 * For general information about connectors, see
 * [Overview of Connector Hub](https://docs.cloud.oracle.com/iaas/Content/connector-hub/overview.htm).
 *
 * For purposes of access control, you must provide the
 * [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment where
 * you want the connector to reside. Notice that the connector
 * doesn't have to be in the same compartment as the source or target services.
 * For information about access control and compartments, see
 * [Overview of the IAM Service](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/overview.htm).
 *
 * After you send your request, the new connector's state is temporarily
 * CREATING. When the state changes to ACTIVE, data begins transferring from the
 * source service to the target service. For instructions on deactivating and
 * activating connectors, see
 * [Activating a Connector](https://docs.cloud.oracle.com/iaas/Content/connector-hub/activate-service-connector.htm).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testServiceConnector = new oci.sch.Connector("test_service_connector", {
 *     compartmentId: compartmentId,
 *     displayName: serviceConnectorDisplayName,
 *     source: {
 *         kind: serviceConnectorSourceKind,
 *         configMap: serviceConnectorSourceConfigMap,
 *         cursor: {
 *             kind: serviceConnectorSourceCursorKind,
 *         },
 *         logSources: [{
 *             compartmentId: compartmentId,
 *             logGroupId: testLogGroup.id,
 *             logId: testLog.id,
 *         }],
 *         monitoringSources: [{
 *             compartmentId: compartmentId,
 *             namespaceDetails: {
 *                 kind: serviceConnectorSourceMonitoringSourcesNamespaceDetailsKind,
 *                 namespaces: [{
 *                     metrics: {
 *                         kind: serviceConnectorSourceMonitoringSourcesNamespaceDetailsNamespacesMetricsKind,
 *                     },
 *                     namespace: serviceConnectorSourceMonitoringSourcesNamespaceDetailsNamespacesNamespace,
 *                 }],
 *             },
 *         }],
 *         pluginName: serviceConnectorSourcePluginName,
 *         streamId: testStream.id,
 *     },
 *     target: {
 *         kind: serviceConnectorTargetKind,
 *         batchRolloverSizeInMbs: Number(serviceConnectorTargetBatchRolloverSizeInMbs),
 *         batchRolloverTimeInMs: Number(serviceConnectorTargetBatchRolloverTimeInMs),
 *         batchSizeInKbs: Number(serviceConnectorTargetBatchSizeInKbs),
 *         batchSizeInNum: Number(serviceConnectorTargetBatchSizeInNum),
 *         batchTimeInSec: Number(serviceConnectorTargetBatchTimeInSec),
 *         bucket: serviceConnectorTargetBucket,
 *         compartmentId: compartmentId,
 *         dimensions: [{
 *             dimensionValue: {
 *                 kind: serviceConnectorTargetDimensionsDimensionValueKind,
 *                 path: serviceConnectorTargetDimensionsDimensionValuePath,
 *                 value: serviceConnectorTargetDimensionsDimensionValueValue,
 *             },
 *             name: serviceConnectorTargetDimensionsName,
 *         }],
 *         enableFormattedMessaging: serviceConnectorTargetEnableFormattedMessaging === "true",
 *         functionId: testFunction.id,
 *         logGroupId: testLogGroup.id,
 *         logSourceIdentifier: serviceConnectorTargetLogSourceIdentifier,
 *         metric: serviceConnectorTargetMetric,
 *         metricNamespace: serviceConnectorTargetMetricNamespace,
 *         namespace: serviceConnectorTargetNamespace,
 *         objectNamePrefix: serviceConnectorTargetObjectNamePrefix,
 *         streamId: testStream.id,
 *         topicId: testNotificationTopic.id,
 *     },
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     description: serviceConnectorDescription,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     tasks: [{
 *         kind: serviceConnectorTasksKind,
 *         batchSizeInKbs: Number(serviceConnectorTasksBatchSizeInKbs),
 *         batchTimeInSec: Number(serviceConnectorTasksBatchTimeInSec),
 *         condition: serviceConnectorTasksCondition,
 *         functionId: testFunction.id,
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * ServiceConnectors can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Sch/connector:Connector test_service_connector "id"
 * ```
 */
export declare class Connector extends pulumi.CustomResource {
    /**
     * Get an existing Connector 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?: ConnectorState, opts?: pulumi.CustomResourceOptions): Connector;
    /**
     * Returns true if the given object is an instance of Connector.  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 Connector;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the comparment to create the connector in.
     */
    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;
    }>;
    /**
     * (Updatable) The description of the resource. Avoid entering confidential information.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    readonly displayName: 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;
    }>;
    /**
     * A message describing the current state in more detail. For example, the message might provide actionable information for a resource in a `FAILED` state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * *Please note this property is deprecated and will be removed on January 27, 2026. Use `lifecycleDetails` instead.* A message describing the current state in more detail. For example, the message might provide actionable information for a resource in a `FAILED` state.
     */
    readonly lifecyleDetails: pulumi.Output<string>;
    /**
     * (Updatable)
     */
    readonly source: pulumi.Output<outputs.Sch.ConnectorSource>;
    /**
     * (Updatable) The target state for the service connector. 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>;
    /**
     * The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable)
     */
    readonly target: pulumi.Output<outputs.Sch.ConnectorTarget>;
    /**
     * (Updatable) The list of tasks.
     */
    readonly tasks: pulumi.Output<outputs.Sch.ConnectorTask[]>;
    /**
     * The date and time when the connector was created. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time when the connector was updated. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z`
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a Connector 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: ConnectorArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Connector resources.
 */
export interface ConnectorState {
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the comparment to create the connector in.
     */
    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>;
    /**
     * (Updatable) The description of the resource. Avoid entering confidential information.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    displayName?: 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>;
    /**
     * A message describing the current state in more detail. For example, the message might provide actionable information for a resource in a `FAILED` state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * *Please note this property is deprecated and will be removed on January 27, 2026. Use `lifecycleDetails` instead.* A message describing the current state in more detail. For example, the message might provide actionable information for a resource in a `FAILED` state.
     */
    lifecyleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable)
     */
    source?: pulumi.Input<inputs.Sch.ConnectorSource | undefined>;
    /**
     * (Updatable) The target state for the service connector. 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>;
    /**
     * The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable)
     */
    target?: pulumi.Input<inputs.Sch.ConnectorTarget | undefined>;
    /**
     * (Updatable) The list of tasks.
     */
    tasks?: pulumi.Input<pulumi.Input<inputs.Sch.ConnectorTask>[] | undefined>;
    /**
     * The date and time when the connector was created. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time when the connector was updated. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z`
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Connector resource.
 */
export interface ConnectorArgs {
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the comparment to create the connector in.
     */
    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>;
    /**
     * (Updatable) The description of the resource. Avoid entering confidential information.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly name. It does not have to be unique, and it is changeable. Avoid entering confidential information.
     */
    displayName: pulumi.Input<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"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable)
     */
    source: pulumi.Input<inputs.Sch.ConnectorSource>;
    /**
     * (Updatable) The target state for the service connector. 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>;
    /**
     * (Updatable)
     */
    target: pulumi.Input<inputs.Sch.ConnectorTarget>;
    /**
     * (Updatable) The list of tasks.
     */
    tasks?: pulumi.Input<pulumi.Input<inputs.Sch.ConnectorTask>[] | undefined>;
}
//# sourceMappingURL=connector.d.ts.map