/*
* img-src API
*
* Image processing and delivery API. A serverless image processing and delivery API built on Cloudflare Workers with parameter-driven image transformation and on-demand transcoding. ## Features - **Image Upload**: Store original images in R2 with SHA256-based deduplication - **On-Demand Transformation**: Resize, crop, and convert images via URL parameters - **Format Conversion**: WebP, AVIF, JPEG, PNG output formats - **Path Organization**: Organize images into folders with multiple paths per image - **CDN Caching**: Automatic edge caching for transformed images ## Authentication Authenticate using API Keys with `imgsrc_` prefix. Create your API key at https://img-src.io/settings ## Rate Limiting - **Free Plan**: 100 requests/minute - **Pro Plan**: 500 requests/minute Rate limit headers are included in all responses.
*
* The version of the OpenAPI document: 1.0.0
* Contact: taehun@taehun.dev
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Preset {
/// Preset ID
#[serde(rename = "id")]
pub id: String,
/// Preset name
#[serde(rename = "name")]
pub name: String,
/// Optional description
#[serde(rename = "description")]
pub description: Option<String>,
/// Transformation parameters
#[serde(rename = "params")]
pub params: std::collections::HashMap<String, serde_json::Value>,
/// Creation timestamp (Unix epoch)
#[serde(rename = "created_at")]
pub created_at: i64,
/// Last update timestamp (Unix epoch)
#[serde(rename = "updated_at")]
pub updated_at: i64,
/// Number of times this preset has been used
#[serde(rename = "usage_count")]
pub usage_count: i32,
}
impl Preset {
pub fn new(
id: String,
name: String,
params: std::collections::HashMap<String, serde_json::Value>,
created_at: i64,
updated_at: i64,
usage_count: i32,
) -> Preset {
Preset {
id,
name,
description: None,
params,
created_at,
updated_at,
usage_count,
}
}
}