use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ParameterType {
#[default]
String,
StringList,
SecureString,
}
impl ParameterType {
#[must_use]
pub fn as_str(&self) -> &'static str {
match self {
Self::String => "String",
Self::StringList => "StringList",
Self::SecureString => "SecureString",
}
}
}
impl std::fmt::Display for ParameterType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ParameterTier {
#[default]
Standard,
Advanced,
#[serde(rename = "Intelligent-Tiering")]
IntelligentTiering,
}
impl ParameterTier {
#[must_use]
pub fn as_str(&self) -> &'static str {
match self {
Self::Standard => "Standard",
Self::Advanced => "Advanced",
Self::IntelligentTiering => "Intelligent-Tiering",
}
}
}
impl std::fmt::Display for ParameterTier {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Tag {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Parameter {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
pub parameter_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
#[serde(rename = "ARN", skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ParameterStringFilter {
pub key: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub option: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub values: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ParameterMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
pub parameter_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_pattern: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policies: Vec<ParameterInlinePolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ParameterHistory {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "Type", skip_serializing_if = "Option::is_none")]
pub parameter_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_pattern: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub labels: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub policies: Vec<ParameterInlinePolicy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ParameterInlinePolicy {
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_status: Option<String>,
}