winterbaume_cloudcontrol/
types.rs1use chrono::{DateTime, Utc};
2
3#[derive(Debug, Clone)]
5pub struct ManagedResource {
6 pub type_name: String,
8 pub identifier: String,
10 pub resource_model: String,
12}
13
14#[derive(Debug, Clone)]
16pub struct ResourceRequest {
17 pub request_token: String,
19 pub type_name: String,
21 pub identifier: String,
23 pub operation: OperationType,
25 pub operation_status: OperationStatus,
27 pub event_time: DateTime<Utc>,
29 pub resource_model: Option<String>,
31 pub status_message: Option<String>,
33 pub error_code: Option<String>,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq)]
39pub enum OperationType {
40 Create,
41 Delete,
42 Update,
43}
44
45impl OperationType {
46 pub fn as_str(&self) -> &'static str {
47 match self {
48 OperationType::Create => "CREATE",
49 OperationType::Delete => "DELETE",
50 OperationType::Update => "UPDATE",
51 }
52 }
53}
54
55#[derive(Debug, Clone, PartialEq, Eq)]
57pub enum OperationStatus {
58 Pending,
59 InProgress,
60 Success,
61 Failed,
62 CancelInProgress,
63 CancelComplete,
64}
65
66impl OperationStatus {
67 pub fn as_str(&self) -> &'static str {
68 match self {
69 OperationStatus::Pending => "PENDING",
70 OperationStatus::InProgress => "IN_PROGRESS",
71 OperationStatus::Success => "SUCCESS",
72 OperationStatus::Failed => "FAILED",
73 OperationStatus::CancelInProgress => "CANCEL_IN_PROGRESS",
74 OperationStatus::CancelComplete => "CANCEL_COMPLETE",
75 }
76 }
77}