spatio_sdk/models/attachment_input.rs
1/*
2 * SpatioAPI
3 *
4 * The REST API that owns every resource in your Spatio workspace: notes, sheets, slides, tasks, calendar events, mail, chat, files, and contacts. SpatioMCP wraps this API; Spatio Desktop reads from it. You can call it directly from your own code. All requests must be authenticated with a Personal Access Token (`Authorization: Bearer pat_...`) or an OAuth 2.1 access token, and use HTTPS. Official SDKs (MIT, generated from this spec on every release): - TypeScript: https://github.com/spatio-labs/spatio-ts (`npm install @spatio-labs/spatio-ts`) - Python: https://github.com/spatio-labs/spatio-py (`pip install spatio-sdk`) - Go: https://github.com/spatio-labs/spatio-go (`go get github.com/spatio-labs/spatio-go`) This specification is generated from the platform-service Go source on every push to `main`. The spec, not hand-written documentation, is the source of truth: server stubs and SDKs are generated from it, and any drift between the spec and the running service fails CI.
5 *
6 * The version of the OpenAPI document: v1
7 * Contact: hello@spatio.app
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14use serde_with::serde_as;
15
16/// AttachmentInput : Inline attachment payload for `send`, `reply`, and draft requests. `data` is the raw bytes base64-encoded by the JSON encoder.
17#[serde_as]
18#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
19pub struct AttachmentInput {
20 #[serde(rename = "filename")]
21 pub filename: String,
22 #[serde(rename = "contentType")]
23 pub content_type: String,
24 /// Base64-encoded bytes.
25 #[serde_as(as = "serde_with::base64::Base64")]
26 #[serde(rename = "data")]
27 pub data: Vec<u8>,
28 #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
29 pub size: Option<i64>,
30}
31
32impl AttachmentInput {
33 /// Inline attachment payload for `send`, `reply`, and draft requests. `data` is the raw bytes base64-encoded by the JSON encoder.
34 pub fn new(filename: String, content_type: String, data: Vec<u8>) -> AttachmentInput {
35 AttachmentInput {
36 filename,
37 content_type,
38 data,
39 size: None,
40 }
41 }
42}
43