tembo_api_client/models/
create_instance.rs

1/*
2 * Tembo Cloud
3 *
4 * Platform API for Tembo Cloud             </br>             </br>             To find a Tembo Data API, please find it here:             </br>             </br>             [AWS US East 1](https://api.data-1.use1.tembo.io/swagger-ui/)
5 *
6 * The version of the OpenAPI document: v1.0.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateInstance {
16    #[serde(
17        rename = "app_services",
18        default,
19        with = "::serde_with::rust::double_option",
20        skip_serializing_if = "Option::is_none"
21    )]
22    pub app_services: Option<Option<Vec<models::AppType>>>,
23    #[serde(
24        rename = "autoscaling",
25        default,
26        with = "::serde_with::rust::double_option",
27        skip_serializing_if = "Option::is_none"
28    )]
29    pub autoscaling: Option<Option<Box<models::PatchAutoscaling>>>,
30    #[serde(
31        rename = "connection_pooler",
32        default,
33        with = "::serde_with::rust::double_option",
34        skip_serializing_if = "Option::is_none"
35    )]
36    pub connection_pooler: Option<Option<Box<models::ConnectionPooler>>>,
37    #[serde(rename = "cpu")]
38    pub cpu: models::Cpu,
39    #[serde(
40        rename = "dedicated_networking",
41        default,
42        with = "::serde_with::rust::double_option",
43        skip_serializing_if = "Option::is_none"
44    )]
45    pub dedicated_networking: Option<Option<Box<models::DedicatedNetworking>>>,
46    #[serde(rename = "environment")]
47    pub environment: models::Environment,
48    #[serde(
49        rename = "experimental",
50        default,
51        with = "::serde_with::rust::double_option",
52        skip_serializing_if = "Option::is_none"
53    )]
54    pub experimental: Option<Option<Box<models::Experimental>>>,
55    #[serde(
56        rename = "extensions",
57        default,
58        with = "::serde_with::rust::double_option",
59        skip_serializing_if = "Option::is_none"
60    )]
61    pub extensions: Option<Option<Vec<models::Extension>>>,
62    #[serde(
63        rename = "extra_domains_rw",
64        default,
65        with = "::serde_with::rust::double_option",
66        skip_serializing_if = "Option::is_none"
67    )]
68    pub extra_domains_rw: Option<Option<Vec<String>>>,
69    #[serde(rename = "instance_name")]
70    pub instance_name: String,
71    #[serde(
72        rename = "ip_allow_list",
73        default,
74        with = "::serde_with::rust::double_option",
75        skip_serializing_if = "Option::is_none"
76    )]
77    pub ip_allow_list: Option<Option<Vec<String>>>,
78    #[serde(rename = "memory")]
79    pub memory: models::Memory,
80    #[serde(rename = "pg_version", skip_serializing_if = "Option::is_none")]
81    pub pg_version: Option<i32>,
82    #[serde(
83        rename = "postgres_configs",
84        default,
85        with = "::serde_with::rust::double_option",
86        skip_serializing_if = "Option::is_none"
87    )]
88    pub postgres_configs: Option<Option<Vec<models::PgConfig>>>,
89    #[serde(rename = "provider_id", skip_serializing_if = "Option::is_none")]
90    pub provider_id: Option<String>,
91    #[serde(rename = "region_id", skip_serializing_if = "Option::is_none")]
92    pub region_id: Option<String>,
93    #[serde(rename = "replicas", skip_serializing_if = "Option::is_none")]
94    pub replicas: Option<i32>,
95    #[serde(
96        rename = "spot",
97        default,
98        with = "::serde_with::rust::double_option",
99        skip_serializing_if = "Option::is_none"
100    )]
101    pub spot: Option<Option<bool>>,
102    #[serde(rename = "stack_type")]
103    pub stack_type: models::StackType,
104    #[serde(rename = "storage")]
105    pub storage: models::Storage,
106    #[serde(
107        rename = "trunk_installs",
108        default,
109        with = "::serde_with::rust::double_option",
110        skip_serializing_if = "Option::is_none"
111    )]
112    pub trunk_installs: Option<Option<Vec<models::TrunkInstall>>>,
113}
114
115impl CreateInstance {
116    pub fn new(
117        cpu: models::Cpu,
118        environment: models::Environment,
119        instance_name: String,
120        memory: models::Memory,
121        stack_type: models::StackType,
122        storage: models::Storage,
123    ) -> CreateInstance {
124        CreateInstance {
125            app_services: None,
126            autoscaling: None,
127            connection_pooler: None,
128            cpu,
129            dedicated_networking: None,
130            environment,
131            experimental: None,
132            extensions: None,
133            extra_domains_rw: None,
134            instance_name,
135            ip_allow_list: None,
136            memory,
137            pg_version: None,
138            postgres_configs: None,
139            provider_id: None,
140            region_id: None,
141            replicas: None,
142            spot: None,
143            stack_type,
144            storage,
145            trunk_installs: None,
146        }
147    }
148}