Skip to main content

oci_rust_sdk/core/models/
compute_instance_options.rs

1use serde::{Deserialize, Serialize};
2
3#[allow(unused_imports)]
4use super::*;
5/// Multiple Compute Instance Configuration instance details.
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct ComputeInstanceOptions {
9    pub instance_type: String,
10
11    /// The Compute Instance Configuration parameters.
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub options: Option<Vec<ComputeInstanceDetails>>,
14}
15
16/// Required fields for ComputeInstanceOptions
17pub struct ComputeInstanceOptionsRequired {
18    pub instance_type: String,
19}
20
21impl ComputeInstanceOptions {
22    /// Create a new ComputeInstanceOptions with required fields
23    pub fn new(required: ComputeInstanceOptionsRequired) -> Self {
24        Self {
25            instance_type: required.instance_type,
26
27            options: None,
28        }
29    }
30
31    /// Set options
32    pub fn set_options(mut self, value: Option<Vec<ComputeInstanceDetails>>) -> Self {
33        self.options = value;
34        self
35    }
36
37    /// Set instance_type
38    pub fn set_instance_type(mut self, value: String) -> Self {
39        self.instance_type = value;
40        self
41    }
42
43    /// Set options (unwraps Option)
44    pub fn with_options(mut self, value: Vec<ComputeInstanceDetails>) -> Self {
45        self.options = Some(value);
46        self
47    }
48}