import * as pulumi from "@pulumi/pulumi"; /** * Creates an integration for a database cluster associated with a public cloud project. * * With this resource you can create an integration for all engine except `mongodb`. * * Please take a look at the list of available `types` in the `Argument references` section in order to know the list of available integrations. For example, thanks to the integration feature you can have your PostgreSQL logs in your OpenSearch Database. * * ## Example Usage * * Push PostgreSQL logs in an OpenSearch DB: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ovh from "@ovhcloud/pulumi-ovh"; * * const dbPostgresql = ovh.CloudProjectDatabase.getDatabase({ * serviceName: "XXXX", * engine: "postgresql", * id: "ZZZZ", * }); * const dbOpensearch = ovh.CloudProjectDatabase.getDatabase({ * serviceName: "XXXX", * engine: "opensearch", * id: "ZZZZ", * }); * const integration = new ovh.cloudprojectdatabase.Integration("integration", { * serviceName: dbPostgresql.then(dbPostgresql => dbPostgresql.serviceName), * engine: dbPostgresql.then(dbPostgresql => dbPostgresql.engine), * clusterId: dbPostgresql.then(dbPostgresql => dbPostgresql.id), * sourceServiceId: dbPostgresql.then(dbPostgresql => dbPostgresql.id), * destinationServiceId: dbOpensearch.then(dbOpensearch => dbOpensearch.id), * type: "opensearchLogs", * }); * ``` * * ## Import * * OVHcloud Managed database cluster integrations can be imported using the `service_name`, `engine`, `cluster_id` and `id` of the integration, separated by "/" E.g., * * bash * * ```sh * $ pulumi import ovh:CloudProjectDatabase/integration:Integration my_integration service_name/engine/cluster_id/id * ``` */ export declare class Integration extends pulumi.CustomResource { /** * Get an existing Integration 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, state?: IntegrationState, opts?: pulumi.CustomResourceOptions): Integration; /** * Returns true if the given object is an instance of Integration. 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 Integration; /** * Cluster ID. */ readonly clusterId: pulumi.Output; /** * ID of the destination service. */ readonly destinationServiceId: pulumi.Output; /** * The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). All engines available except `mongodb`. */ readonly engine: pulumi.Output; /** * Parameters for the integration. */ readonly parameters: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. */ readonly serviceName: pulumi.Output; /** * ID of the source service. */ readonly sourceServiceId: pulumi.Output; /** * Current status of the integration. */ readonly status: pulumi.Output; /** * Type of the integration. Available types: * * `grafanaDashboard` * * `grafanaDatasource` * * `kafkaConnect` * * `kafkaLogs` * * `kafkaMirrorMaker` */ readonly type: pulumi.Output; /** * Create a Integration 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: IntegrationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Integration resources. */ export interface IntegrationState { /** * Cluster ID. */ clusterId?: pulumi.Input; /** * ID of the destination service. */ destinationServiceId?: pulumi.Input; /** * The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). All engines available except `mongodb`. */ engine?: pulumi.Input; /** * Parameters for the integration. */ parameters?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. */ serviceName?: pulumi.Input; /** * ID of the source service. */ sourceServiceId?: pulumi.Input; /** * Current status of the integration. */ status?: pulumi.Input; /** * Type of the integration. Available types: * * `grafanaDashboard` * * `grafanaDatasource` * * `kafkaConnect` * * `kafkaLogs` * * `kafkaMirrorMaker` */ type?: pulumi.Input; } /** * The set of arguments for constructing a Integration resource. */ export interface IntegrationArgs { /** * Cluster ID. */ clusterId: pulumi.Input; /** * ID of the destination service. */ destinationServiceId: pulumi.Input; /** * The engine of the database cluster you want to add. You can find the complete list of available engine in the [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). All engines available except `mongodb`. */ engine: pulumi.Input; /** * Parameters for the integration. */ parameters?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. */ serviceName?: pulumi.Input; /** * ID of the source service. */ sourceServiceId: pulumi.Input; /** * Type of the integration. Available types: * * `grafanaDashboard` * * `grafanaDatasource` * * `kafkaConnect` * * `kafkaLogs` * * `kafkaMirrorMaker` */ type?: pulumi.Input; }