Expand description
Async Rust SDK primitives for the CloudConvert API v2.
This crate exposes typed request and response models for CloudConvert jobs
and tasks, plus a CloudConvertClient for calling the API from async Rust
applications. Operation-specific drift is handled through option(...)
builder methods, extra maps, and TaskRequest::custom.
§Build jobs
Use JobCreateRequest::linear when each task feeds into the next task.
use cloudconvert_sdk::{FileExtension, JobCreateRequest};
let request = JobCreateRequest::linear()
.import_url("https://example.test/input.docx")
.convert(FileExtension::Pdf)
.export_url()
.build();
let payload = serde_json::to_value(request).unwrap();
assert_eq!(payload["tasks"]["import-url"]["operation"], "import/url");
assert_eq!(payload["tasks"]["convert"]["input"], "import-url");
assert_eq!(payload["tasks"]["export-url"]["input"], "convert");Use *_with(...) methods to configure task-specific options while keeping a
serial pipeline.
use cloudconvert_sdk::{FileExtension, JobCreateRequest};
let request = JobCreateRequest::linear()
.import_url_with("https://example.test/input.docx", |task| {
task.filename("input.docx")
})
.convert_with(FileExtension::Pdf, |task| {
task.input_format(FileExtension::Docx)
})
.export_url()
.build();
let payload = serde_json::to_value(request).unwrap();
assert_eq!(payload["tasks"]["import-url"]["filename"], "input.docx");
assert_eq!(payload["tasks"]["convert"]["input_format"], "docx");Use JobCreateRequest::graph when a job branches, joins multiple inputs,
or needs to reference a non-adjacent task.
use cloudconvert_sdk::{FileExtension, JobCreateRequest};
let request = JobCreateRequest::graph(|job| {
let import = job.import_url("https://example.test/input.docx");
let pdf = job.convert(&import, FileExtension::Pdf);
let png = job.convert(&import, FileExtension::Png);
job.export_url([&pdf, &png]);
})
.build();
let payload = serde_json::to_value(request).unwrap();
assert_eq!(payload["tasks"]["convert"]["input"], "import-url");
assert_eq!(payload["tasks"]["convert-2"]["input"], "import-url");
assert_eq!(
payload["tasks"]["export-url"]["input"],
serde_json::json!(["convert", "convert-2"])
);§Call the API
Live API calls need a CloudConvert API key. ApiKey::from_env() reads
CLOUDCONVERT_API_KEY.
use cloudconvert_sdk::{ApiKey, CloudConvertClient, FileExtension, JobCreateRequest};
let client = CloudConvertClient::builder(ApiKey::from_env()?).build()?;
let request = JobCreateRequest::linear()
.import_url("https://example.test/input.docx")
.convert(FileExtension::Pdf)
.export_url()
.build();
let job = client.jobs().create(request).await?;
let finished = client.jobs().wait(&job.id).await?;
for file in finished.export_urls() {
if let Some(url) = &file.url {
let bytes = client.download(url).await?;
println!("downloaded {} bytes as {}", bytes.len(), file.filename);
}
}Structs§
- ApiError
- ApiKey
- ApiResponse
- A non-paginated API response that preserves envelope metadata.
- Archive
Task - Azure
Blob Export Task - Azure
Blob Import Task - Base64
Import Task - Capture
Website Task - Client
Builder - Cloud
Convert Client - Cloud
Convert Config - Command
Task - Convert
Task - Export
Upload Task - Export
UrlTask - File
Result - Generic
Task - Builder for a custom CloudConvert task operation.
- Google
Cloud Storage Export Task - Google
Cloud Storage Import Task - Import
Upload Task - Import
UrlTask - Job
- JobBuilder
- Builder for serial
JobCreateRequestpipelines. - JobCreate
Request - Request body for
POST /v2/jobs. - JobGet
Query - JobGraph
Builder - Builder for branched CloudConvert job graphs.
- JobList
Query - JobTask
- Jobs
Resource - Merge
Task - Metadata
Task - Metadata
Write Task - OAuth
Access Token - OAuth
Client - OAuth
Client Secret - OAuth
Refresh Token - OAuth
Token Response - Open
Stack Export Task - Open
Stack Import Task - Operation
- Operation
Engine Version - Operation
List Query - Operation
Option - Operation
Validation Error - Operations
Resource - Optimize
Task - Page
- A paginated API response.
- Pagination
Links - Pagination links returned by CloudConvert list endpoints.
- Pagination
Meta - Pagination metadata returned by CloudConvert list endpoints.
- Parse
File Extension Error - Error returned when parsing a string into
FileExtensionfails. - PdfA
Task - PdfDecrypt
Task - PdfEncrypt
Task - PdfExtract
Pages Task - PdfOcr
Task - PdfRotate
Pages Task - PdfSplit
Pages Task - PdfX
Task - Rate
Limit - Rate limit information extracted from CloudConvert response headers.
- RawImport
Task - S3Export
Task - S3Import
Task - Sftp
Export Task - Sftp
Import Task - Signing
Secret - Socket
Subscription - Task
- Task
GetQuery - Task
List Query - Task
Name - Name assigned to a task in a CloudConvert job request.
- Task
Request - Serialized task request used by job and standalone task APIs.
- Task
Result - Tasks
Resource - Thumbnail
Task - Transport
Config - Upload
Form - User
- Users
Resource - Watermark
Task - Webhook
- Webhook
Create Request - Webhook
List Query - Webhooks
Resource
Enums§
- Error
- File
Extension - Supported CloudConvert file extension tokens.
- Font
Align - Input
- Input dependency for a CloudConvert task.
- JobSocket
Event - JobStatus
- Layer
- OAuth
Scope - Operation
Option Kind - Operation
Validation Error Kind - Operation
Validation Mode - Position
Horizontal - Position
Vertical - Region
- Socket
Channel - Socket
Event Kind - Task
Socket Event - Task
Status - Webhook
Event
Traits§
- Task
Payload - Sealed trait implemented by SDK-owned typed task builders.