asterisk_ari/apis/asterisk/dynamic_config/
params.rs

1use derive_new::new;
2use derive_setters::Setters;
3use serde::Serialize;
4
5#[derive(Clone, Default, Debug, PartialEq, Serialize, new, Setters)]
6#[setters(prefix = "with_")]
7#[setters(into, strip_option)]
8#[serde(rename_all = "camelCase")]
9pub struct CreateUpdateRequest {
10    /// The configuration class containing dynamic configuration objects.
11    #[serde(skip_serializing)]
12    #[setters(skip)]
13    #[new(into)]
14    /// The type of configuration object to retrieve.
15    pub(crate) config_class: String,
16    #[serde(skip_serializing)]
17    #[setters(skip)]
18    #[new(into)]
19    pub(crate) object_type: String,
20
21    /// The unique identifier of the object to retrieve.
22    #[serde(skip_serializing)]
23    #[setters(skip)]
24    #[new(into)]
25    pub(crate) id: String,
26
27    /// The body object should have a value that is a list of ConfigTuples, which provide the fields to update.
28    ///
29    /// Ex. `[ { "attribute": "directmedia", "value": "false" } ]`
30    #[serde(rename = "fields")]
31    #[new(default)]
32    config: Option<Vec<ConfigTuple>>,
33}
34
35/// ConfigTuple : A key/value pair that makes up part of a configuration object.
36#[derive(Clone, Default, Debug, PartialEq, Serialize, new)]
37pub struct ConfigTuple {
38    /// A configuration object attribute.
39    #[new(into)]
40    pub attribute: String,
41    /// The value for the attribute.
42    #[new(into)]
43    pub value: String,
44}