use api_builder::{Endpoint, api_endpoint};
use serde::Serialize;
use typed_builder::TypedBuilder;
#[derive(
Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Default, Serialize, TypedBuilder,
)]
#[builder(field_defaults(setter(into)))]
pub struct UpdateScript<'a> {
pub project_id: &'a str,
pub script_id: &'a str,
pub script: &'a str,
#[builder(default, setter(strip_option))]
pub silent: Option<bool>,
#[builder(default, setter(strip_option))]
pub ffa: Option<bool>,
#[builder(default = Some(true), setter(strip_option))]
pub heartbeat: Option<bool>,
#[builder(default, setter(strip_option))]
pub lightning: Option<bool>,
}
#[api_endpoint(method = PUT, path = format!("/v3/projects/{}/scripts/{}", self.project_id, self.script_id), self_as_body = "application/json")]
impl Endpoint for UpdateScript<'_> {}