rustack_ssm_model/
operations.rs1use std::fmt;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
11pub enum SsmOperation {
12 PutParameter,
15 GetParameter,
17 GetParameters,
19 GetParametersByPath,
21 DeleteParameter,
23 DeleteParameters,
25
26 DescribeParameters,
29 GetParameterHistory,
31 AddTagsToResource,
33 RemoveTagsFromResource,
35 ListTagsForResource,
37
38 LabelParameterVersion,
41 UnlabelParameterVersion,
43}
44
45impl SsmOperation {
46 #[must_use]
48 pub fn as_str(&self) -> &'static str {
49 match self {
50 Self::PutParameter => "PutParameter",
51 Self::GetParameter => "GetParameter",
52 Self::GetParameters => "GetParameters",
53 Self::GetParametersByPath => "GetParametersByPath",
54 Self::DeleteParameter => "DeleteParameter",
55 Self::DeleteParameters => "DeleteParameters",
56 Self::DescribeParameters => "DescribeParameters",
57 Self::GetParameterHistory => "GetParameterHistory",
58 Self::AddTagsToResource => "AddTagsToResource",
59 Self::RemoveTagsFromResource => "RemoveTagsFromResource",
60 Self::ListTagsForResource => "ListTagsForResource",
61 Self::LabelParameterVersion => "LabelParameterVersion",
62 Self::UnlabelParameterVersion => "UnlabelParameterVersion",
63 }
64 }
65
66 #[must_use]
68 pub fn from_name(name: &str) -> Option<Self> {
69 match name {
70 "PutParameter" => Some(Self::PutParameter),
71 "GetParameter" => Some(Self::GetParameter),
72 "GetParameters" => Some(Self::GetParameters),
73 "GetParametersByPath" => Some(Self::GetParametersByPath),
74 "DeleteParameter" => Some(Self::DeleteParameter),
75 "DeleteParameters" => Some(Self::DeleteParameters),
76 "DescribeParameters" => Some(Self::DescribeParameters),
77 "GetParameterHistory" => Some(Self::GetParameterHistory),
78 "AddTagsToResource" => Some(Self::AddTagsToResource),
79 "RemoveTagsFromResource" => Some(Self::RemoveTagsFromResource),
80 "ListTagsForResource" => Some(Self::ListTagsForResource),
81 "LabelParameterVersion" => Some(Self::LabelParameterVersion),
82 "UnlabelParameterVersion" => Some(Self::UnlabelParameterVersion),
83 _ => None,
84 }
85 }
86
87 #[must_use]
89 pub fn is_phase0(&self) -> bool {
90 matches!(
91 self,
92 Self::PutParameter
93 | Self::GetParameter
94 | Self::GetParameters
95 | Self::GetParametersByPath
96 | Self::DeleteParameter
97 | Self::DeleteParameters
98 )
99 }
100
101 #[must_use]
103 pub fn is_phase1(&self) -> bool {
104 matches!(
105 self,
106 Self::DescribeParameters
107 | Self::GetParameterHistory
108 | Self::AddTagsToResource
109 | Self::RemoveTagsFromResource
110 | Self::ListTagsForResource
111 )
112 }
113
114 #[must_use]
116 pub fn is_phase2(&self) -> bool {
117 matches!(
118 self,
119 Self::LabelParameterVersion | Self::UnlabelParameterVersion
120 )
121 }
122
123 #[must_use]
125 pub fn is_implemented(&self) -> bool {
126 self.is_phase0() || self.is_phase1() || self.is_phase2()
127 }
128}
129
130impl fmt::Display for SsmOperation {
131 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
132 f.write_str(self.as_str())
133 }
134}