1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! Salesforce Bulk API 2.0 for querying and ingesting large data sets.
//!
//! This module provides access to the Salesforce Bulk API 2.0, which allows you to:
//! - **Query**: Asynchronously query large data sets using SOQL
//! - **Ingest**: Load, update, upsert, or delete large numbers of records
//!
//! # Example
//!
//! ```no_run
//! use salesforce_core::client::{self, Credentials};
//! use salesforce_core::bulkapi::ClientBuilder;
//!
//! # #[tokio::main]
//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! // Create and connect auth client
//! let auth_client = client::Builder::new()
//! .credentials(Credentials {
//! client_id: "...".to_string(),
//! client_secret: Some("...".to_string()),
//! username: None,
//! password: None,
//! instance_url: "https://your-instance.salesforce.com".to_string(),
//! tenant_id: "...".to_string(),
//! })
//! .build()?
//! .connect()
//! .await?;
//!
//! // Create Bulk API client with default API version (v65.0)
//! let bulk_client = ClientBuilder::new(auth_client.clone()).build()?;
//!
//! // Or specify a custom API version
//! let bulk_client_custom = ClientBuilder::new(auth_client)
//! .api_version("64.0")
//! .build()?;
//!
//! // Use query and ingest operations
//! let query_client = bulk_client.query();
//! let ingest_client = bulk_client.ingest();
//! # Ok(())
//! # }
//! ```
pub use ;
/// Re-export error types from query and ingest modules.
pub use Error as IngestError;
pub use Error as QueryError;
/// Re-export commonly used types from the generated client.
pub use ;
/// Re-export ByteStream for handling streaming results.
pub use ByteStream;