// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
/// Update a block. Only the fields you provide are changed.
/// `config_mode` controls how `config` is applied:
/// * `"merge"` (default): the given `config` is merged into the existing
/// one — nested objects are combined, and a `null` value deletes a key.
/// * `"replace"`: the given `config` replaces the existing one entirely.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateWorkflowBlockRequest {
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub label: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub position_x: Option<f64>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub position_y: Option<f64>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub width: Option<f64>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub height: Option<f64>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub config: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub parent_id: Option<String>,
    /// How to apply the `config` field. 'merge' (default) deep-merges the patch into the existing config with null-as-delete; 'replace' uses the patch as the full new config.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub config_mode: Option<UpdateWorkflowBlockRequestConfigMode>,
}
