oci_rust_sdk/core/models/
launch_options.rs1use serde::{Deserialize, Serialize};
2
3#[allow(unused_imports)]
4use super::*;
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct LaunchOptions {
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub boot_volume_type: Option<LaunchOptionsBootVolumeType>,
12
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub firmware: Option<LaunchOptionsFirmware>,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub network_type: Option<LaunchOptionsNetworkType>,
20
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub remote_data_volume_type: Option<LaunchOptionsRemoteDataVolumeType>,
24
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub is_pv_encryption_in_transit_enabled: Option<bool>,
28
29 #[serde(skip_serializing_if = "Option::is_none")]
31 pub is_consistent_volume_naming_enabled: Option<bool>,
32}
33
34impl LaunchOptions {
35 pub fn new() -> Self {
37 Self {
38 boot_volume_type: None,
39
40 firmware: None,
41
42 network_type: None,
43
44 remote_data_volume_type: None,
45
46 is_pv_encryption_in_transit_enabled: None,
47
48 is_consistent_volume_naming_enabled: None,
49 }
50 }
51
52 pub fn set_boot_volume_type(mut self, value: Option<LaunchOptionsBootVolumeType>) -> Self {
54 self.boot_volume_type = value;
55 self
56 }
57
58 pub fn set_firmware(mut self, value: Option<LaunchOptionsFirmware>) -> Self {
60 self.firmware = value;
61 self
62 }
63
64 pub fn set_network_type(mut self, value: Option<LaunchOptionsNetworkType>) -> Self {
66 self.network_type = value;
67 self
68 }
69
70 pub fn set_remote_data_volume_type(
72 mut self,
73 value: Option<LaunchOptionsRemoteDataVolumeType>,
74 ) -> Self {
75 self.remote_data_volume_type = value;
76 self
77 }
78
79 pub fn set_is_pv_encryption_in_transit_enabled(mut self, value: Option<bool>) -> Self {
81 self.is_pv_encryption_in_transit_enabled = value;
82 self
83 }
84
85 pub fn set_is_consistent_volume_naming_enabled(mut self, value: Option<bool>) -> Self {
87 self.is_consistent_volume_naming_enabled = value;
88 self
89 }
90
91 pub fn with_boot_volume_type(mut self, value: LaunchOptionsBootVolumeType) -> Self {
93 self.boot_volume_type = Some(value);
94 self
95 }
96
97 pub fn with_firmware(mut self, value: LaunchOptionsFirmware) -> Self {
99 self.firmware = Some(value);
100 self
101 }
102
103 pub fn with_network_type(mut self, value: LaunchOptionsNetworkType) -> Self {
105 self.network_type = Some(value);
106 self
107 }
108
109 pub fn with_remote_data_volume_type(
111 mut self,
112 value: LaunchOptionsRemoteDataVolumeType,
113 ) -> Self {
114 self.remote_data_volume_type = Some(value);
115 self
116 }
117
118 pub fn with_is_pv_encryption_in_transit_enabled(mut self, value: bool) -> Self {
120 self.is_pv_encryption_in_transit_enabled = Some(value);
121 self
122 }
123
124 pub fn with_is_consistent_volume_naming_enabled(mut self, value: bool) -> Self {
126 self.is_consistent_volume_naming_enabled = Some(value);
127 self
128 }
129}
130
131impl Default for LaunchOptions {
132 fn default() -> Self {
133 Self::new()
134 }
135}