1#![allow(clippy::redundant_closure_call)]
2#![allow(clippy::needless_lifetimes)]
3#![allow(clippy::match_single_binding)]
4#![allow(clippy::clone_on_copy)]
5
6use derive_builder::Builder;
7use serde::{Deserialize, Serialize};
8
9#[derive(Clone, Debug, Deserialize, Serialize)]
10pub struct EventsourceCreateEventSourceRequest {
11 #[serde(
12 rename = "eventSource",
13 default,
14 skip_serializing_if = "Option::is_none"
15 )]
16 pub event_source: Option<IoArgoprojEventsV1alpha1EventSource>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub namespace: Option<String>,
19}
20impl From<&EventsourceCreateEventSourceRequest> for EventsourceCreateEventSourceRequest {
21 fn from(value: &EventsourceCreateEventSourceRequest) -> Self {
22 value.clone()
23 }
24}
25#[derive(Clone, Debug, Deserialize, Serialize)]
26pub struct EventsourceEventSourceDeletedResponse(pub serde_json::Map<String, serde_json::Value>);
27impl std::ops::Deref for EventsourceEventSourceDeletedResponse {
28 type Target = serde_json::Map<String, serde_json::Value>;
29 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
30 &self.0
31 }
32}
33impl From<EventsourceEventSourceDeletedResponse> for serde_json::Map<String, serde_json::Value> {
34 fn from(value: EventsourceEventSourceDeletedResponse) -> Self {
35 value.0
36 }
37}
38impl From<&EventsourceEventSourceDeletedResponse> for EventsourceEventSourceDeletedResponse {
39 fn from(value: &EventsourceEventSourceDeletedResponse) -> Self {
40 value.clone()
41 }
42}
43impl From<serde_json::Map<String, serde_json::Value>> for EventsourceEventSourceDeletedResponse {
44 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
45 Self(value)
46 }
47}
48#[derive(Clone, Debug, Deserialize, Serialize)]
49pub struct EventsourceEventSourceWatchEvent {
50 #[serde(default, skip_serializing_if = "Option::is_none")]
51 pub object: Option<IoArgoprojEventsV1alpha1EventSource>,
52 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
53 pub type_: Option<String>,
54}
55impl From<&EventsourceEventSourceWatchEvent> for EventsourceEventSourceWatchEvent {
56 fn from(value: &EventsourceEventSourceWatchEvent) -> Self {
57 value.clone()
58 }
59}
60#[derive(Clone, Debug, Deserialize, Serialize)]
61pub struct EventsourceLogEntry {
62 #[serde(rename = "eventName", default, skip_serializing_if = "Option::is_none")]
63 pub event_name: Option<String>,
64 #[serde(
65 rename = "eventSourceName",
66 default,
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub event_source_name: Option<String>,
70 #[serde(
71 rename = "eventSourceType",
72 default,
73 skip_serializing_if = "Option::is_none"
74 )]
75 pub event_source_type: Option<String>,
76 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub level: Option<String>,
78 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub msg: Option<String>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub namespace: Option<String>,
82 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
84}
85impl From<&EventsourceLogEntry> for EventsourceLogEntry {
86 fn from(value: &EventsourceLogEntry) -> Self {
87 value.clone()
88 }
89}
90#[derive(Clone, Debug, Deserialize, Serialize)]
91pub struct EventsourceUpdateEventSourceRequest {
92 #[serde(
93 rename = "eventSource",
94 default,
95 skip_serializing_if = "Option::is_none"
96 )]
97 pub event_source: Option<IoArgoprojEventsV1alpha1EventSource>,
98 #[serde(default, skip_serializing_if = "Option::is_none")]
99 pub name: Option<String>,
100 #[serde(default, skip_serializing_if = "Option::is_none")]
101 pub namespace: Option<String>,
102}
103impl From<&EventsourceUpdateEventSourceRequest> for EventsourceUpdateEventSourceRequest {
104 fn from(value: &EventsourceUpdateEventSourceRequest) -> Self {
105 value.clone()
106 }
107}
108#[derive(Clone, Debug, Deserialize, Serialize)]
109pub struct GoogleProtobufAny {
110 #[serde(default, skip_serializing_if = "Option::is_none")]
111 pub type_url: Option<String>,
112 #[serde(default, skip_serializing_if = "Option::is_none")]
113 pub value: Option<String>,
114}
115impl From<&GoogleProtobufAny> for GoogleProtobufAny {
116 fn from(value: &GoogleProtobufAny) -> Self {
117 value.clone()
118 }
119}
120#[derive(Clone, Debug, Deserialize, Serialize)]
121pub struct GrpcGatewayRuntimeError {
122 #[serde(default, skip_serializing_if = "Option::is_none")]
123 pub code: Option<i64>,
124 #[serde(default, skip_serializing_if = "Vec::is_empty")]
125 pub details: Vec<GoogleProtobufAny>,
126 #[serde(default, skip_serializing_if = "Option::is_none")]
127 pub error: Option<String>,
128 #[serde(default, skip_serializing_if = "Option::is_none")]
129 pub message: Option<String>,
130}
131impl From<&GrpcGatewayRuntimeError> for GrpcGatewayRuntimeError {
132 fn from(value: &GrpcGatewayRuntimeError) -> Self {
133 value.clone()
134 }
135}
136#[derive(Clone, Debug, Deserialize, Serialize)]
137pub struct GrpcGatewayRuntimeStreamError {
138 #[serde(default, skip_serializing_if = "Vec::is_empty")]
139 pub details: Vec<GoogleProtobufAny>,
140 #[serde(default, skip_serializing_if = "Option::is_none")]
141 pub grpc_code: Option<i64>,
142 #[serde(default, skip_serializing_if = "Option::is_none")]
143 pub http_code: Option<i64>,
144 #[serde(default, skip_serializing_if = "Option::is_none")]
145 pub http_status: Option<String>,
146 #[serde(default, skip_serializing_if = "Option::is_none")]
147 pub message: Option<String>,
148}
149impl From<&GrpcGatewayRuntimeStreamError> for GrpcGatewayRuntimeStreamError {
150 fn from(value: &GrpcGatewayRuntimeStreamError) -> Self {
151 value.clone()
152 }
153}
154#[doc = "Amount represent a numeric amount."]
155#[derive(Clone, Debug, Deserialize, Serialize)]
156pub struct IoArgoprojEventsV1alpha1Amount {
157 #[serde(default, skip_serializing_if = "Option::is_none")]
158 pub value: Option<String>,
159}
160impl From<&IoArgoprojEventsV1alpha1Amount> for IoArgoprojEventsV1alpha1Amount {
161 fn from(value: &IoArgoprojEventsV1alpha1Amount) -> Self {
162 value.clone()
163 }
164}
165#[derive(Clone, Debug, Deserialize, Serialize)]
166pub struct IoArgoprojEventsV1alpha1AmqpConsumeConfig {
167 #[serde(rename = "autoAck", default, skip_serializing_if = "Option::is_none")]
168 pub auto_ack: Option<bool>,
169 #[serde(
170 rename = "consumerTag",
171 default,
172 skip_serializing_if = "Option::is_none"
173 )]
174 pub consumer_tag: Option<String>,
175 #[serde(default, skip_serializing_if = "Option::is_none")]
176 pub exclusive: Option<bool>,
177 #[serde(rename = "noLocal", default, skip_serializing_if = "Option::is_none")]
178 pub no_local: Option<bool>,
179 #[serde(rename = "noWait", default, skip_serializing_if = "Option::is_none")]
180 pub no_wait: Option<bool>,
181}
182impl From<&IoArgoprojEventsV1alpha1AmqpConsumeConfig>
183 for IoArgoprojEventsV1alpha1AmqpConsumeConfig
184{
185 fn from(value: &IoArgoprojEventsV1alpha1AmqpConsumeConfig) -> Self {
186 value.clone()
187 }
188}
189#[derive(Clone, Debug, Deserialize, Serialize)]
190pub struct IoArgoprojEventsV1alpha1AmqpEventSource {
191 #[serde(default, skip_serializing_if = "Option::is_none")]
192 pub auth: Option<IoArgoprojEventsV1alpha1BasicAuth>,
193 #[serde(
194 rename = "connectionBackoff",
195 default,
196 skip_serializing_if = "Option::is_none"
197 )]
198 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
199 #[serde(default, skip_serializing_if = "Option::is_none")]
200 pub consume: Option<IoArgoprojEventsV1alpha1AmqpConsumeConfig>,
201 #[serde(
202 rename = "exchangeDeclare",
203 default,
204 skip_serializing_if = "Option::is_none"
205 )]
206 pub exchange_declare: Option<IoArgoprojEventsV1alpha1AmqpExchangeDeclareConfig>,
207 #[serde(
208 rename = "exchangeName",
209 default,
210 skip_serializing_if = "Option::is_none"
211 )]
212 pub exchange_name: Option<String>,
213 #[serde(
214 rename = "exchangeType",
215 default,
216 skip_serializing_if = "Option::is_none"
217 )]
218 pub exchange_type: Option<String>,
219 #[serde(default, skip_serializing_if = "Option::is_none")]
220 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
221 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
222 pub json_body: Option<bool>,
223 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
224 pub metadata: std::collections::HashMap<String, String>,
225 #[serde(rename = "queueBind", default, skip_serializing_if = "Option::is_none")]
226 pub queue_bind: Option<IoArgoprojEventsV1alpha1AmqpQueueBindConfig>,
227 #[serde(
228 rename = "queueDeclare",
229 default,
230 skip_serializing_if = "Option::is_none"
231 )]
232 pub queue_declare: Option<IoArgoprojEventsV1alpha1AmqpQueueDeclareConfig>,
233 #[serde(
234 rename = "routingKey",
235 default,
236 skip_serializing_if = "Option::is_none"
237 )]
238 pub routing_key: Option<String>,
239 #[serde(default, skip_serializing_if = "Option::is_none")]
240 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
241 #[serde(default, skip_serializing_if = "Option::is_none")]
242 pub url: Option<String>,
243 #[serde(rename = "urlSecret", default, skip_serializing_if = "Option::is_none")]
244 pub url_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
245}
246impl From<&IoArgoprojEventsV1alpha1AmqpEventSource> for IoArgoprojEventsV1alpha1AmqpEventSource {
247 fn from(value: &IoArgoprojEventsV1alpha1AmqpEventSource) -> Self {
248 value.clone()
249 }
250}
251#[derive(Clone, Debug, Deserialize, Serialize)]
252pub struct IoArgoprojEventsV1alpha1AmqpExchangeDeclareConfig {
253 #[serde(
254 rename = "autoDelete",
255 default,
256 skip_serializing_if = "Option::is_none"
257 )]
258 pub auto_delete: Option<bool>,
259 #[serde(default, skip_serializing_if = "Option::is_none")]
260 pub durable: Option<bool>,
261 #[serde(default, skip_serializing_if = "Option::is_none")]
262 pub internal: Option<bool>,
263 #[serde(rename = "noWait", default, skip_serializing_if = "Option::is_none")]
264 pub no_wait: Option<bool>,
265}
266impl From<&IoArgoprojEventsV1alpha1AmqpExchangeDeclareConfig>
267 for IoArgoprojEventsV1alpha1AmqpExchangeDeclareConfig
268{
269 fn from(value: &IoArgoprojEventsV1alpha1AmqpExchangeDeclareConfig) -> Self {
270 value.clone()
271 }
272}
273#[derive(Clone, Debug, Deserialize, Serialize)]
274pub struct IoArgoprojEventsV1alpha1AmqpQueueBindConfig {
275 #[serde(rename = "noWait", default, skip_serializing_if = "Option::is_none")]
276 pub no_wait: Option<bool>,
277}
278impl From<&IoArgoprojEventsV1alpha1AmqpQueueBindConfig>
279 for IoArgoprojEventsV1alpha1AmqpQueueBindConfig
280{
281 fn from(value: &IoArgoprojEventsV1alpha1AmqpQueueBindConfig) -> Self {
282 value.clone()
283 }
284}
285#[derive(Clone, Debug, Deserialize, Serialize)]
286pub struct IoArgoprojEventsV1alpha1AmqpQueueDeclareConfig {
287 #[serde(default, skip_serializing_if = "Option::is_none")]
288 pub arguments: Option<String>,
289 #[serde(
290 rename = "autoDelete",
291 default,
292 skip_serializing_if = "Option::is_none"
293 )]
294 pub auto_delete: Option<bool>,
295 #[serde(default, skip_serializing_if = "Option::is_none")]
296 pub durable: Option<bool>,
297 #[serde(default, skip_serializing_if = "Option::is_none")]
298 pub exclusive: Option<bool>,
299 #[serde(default, skip_serializing_if = "Option::is_none")]
300 pub name: Option<String>,
301 #[serde(rename = "noWait", default, skip_serializing_if = "Option::is_none")]
302 pub no_wait: Option<bool>,
303}
304impl From<&IoArgoprojEventsV1alpha1AmqpQueueDeclareConfig>
305 for IoArgoprojEventsV1alpha1AmqpQueueDeclareConfig
306{
307 fn from(value: &IoArgoprojEventsV1alpha1AmqpQueueDeclareConfig) -> Self {
308 value.clone()
309 }
310}
311#[derive(Clone, Debug, Deserialize, Serialize)]
312pub struct IoArgoprojEventsV1alpha1ArgoWorkflowTrigger {
313 #[serde(default, skip_serializing_if = "Vec::is_empty")]
314 pub args: Vec<String>,
315 #[serde(default, skip_serializing_if = "Option::is_none")]
316 pub operation: Option<String>,
317 #[serde(default, skip_serializing_if = "Vec::is_empty")]
318 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
319 #[serde(default, skip_serializing_if = "Option::is_none")]
320 pub source: Option<IoArgoprojEventsV1alpha1ArtifactLocation>,
321}
322impl From<&IoArgoprojEventsV1alpha1ArgoWorkflowTrigger>
323 for IoArgoprojEventsV1alpha1ArgoWorkflowTrigger
324{
325 fn from(value: &IoArgoprojEventsV1alpha1ArgoWorkflowTrigger) -> Self {
326 value.clone()
327 }
328}
329#[derive(Clone, Debug, Deserialize, Serialize)]
330pub struct IoArgoprojEventsV1alpha1ArtifactLocation {
331 #[serde(default, skip_serializing_if = "Option::is_none")]
332 pub configmap: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
333 #[serde(default, skip_serializing_if = "Option::is_none")]
334 pub file: Option<IoArgoprojEventsV1alpha1FileArtifact>,
335 #[serde(default, skip_serializing_if = "Option::is_none")]
336 pub git: Option<IoArgoprojEventsV1alpha1GitArtifact>,
337 #[serde(default, skip_serializing_if = "Option::is_none")]
338 pub inline: Option<String>,
339 #[serde(default, skip_serializing_if = "Option::is_none")]
340 pub resource: Option<IoArgoprojEventsV1alpha1Resource>,
341 #[serde(default, skip_serializing_if = "Option::is_none")]
342 pub s3: Option<IoArgoprojEventsV1alpha1S3Artifact>,
343 #[serde(default, skip_serializing_if = "Option::is_none")]
344 pub url: Option<IoArgoprojEventsV1alpha1UrlArtifact>,
345}
346impl From<&IoArgoprojEventsV1alpha1ArtifactLocation> for IoArgoprojEventsV1alpha1ArtifactLocation {
347 fn from(value: &IoArgoprojEventsV1alpha1ArtifactLocation) -> Self {
348 value.clone()
349 }
350}
351#[derive(Clone, Debug, Deserialize, Serialize)]
352pub struct IoArgoprojEventsV1alpha1AwsLambdaTrigger {
353 #[serde(rename = "accessKey", default, skip_serializing_if = "Option::is_none")]
354 pub access_key: Option<IoK8sApiCoreV1SecretKeySelector>,
355 #[doc = "FunctionName refers to the name of the function to invoke."]
356 #[serde(
357 rename = "functionName",
358 default,
359 skip_serializing_if = "Option::is_none"
360 )]
361 pub function_name: Option<String>,
362 #[doc = "Choose from the following options.\n\n * RequestResponse (default) - Invoke the function synchronously. Keep\n the connection open until the function returns a response or times out.\n The API response includes the function response and additional data.\n\n * Event - Invoke the function asynchronously. Send events that fail multiple\n times to the function's dead-letter queue (if it's configured). The API\n response only includes a status code.\n\n * DryRun - Validate parameter values and verify that the user or role\n has permission to invoke the function.\n+optional"]
363 #[serde(
364 rename = "invocationType",
365 default,
366 skip_serializing_if = "Option::is_none"
367 )]
368 pub invocation_type: Option<String>,
369 #[serde(default, skip_serializing_if = "Vec::is_empty")]
370 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
371 #[doc = "Payload is the list of key-value extracted from an event payload to construct the request payload."]
372 #[serde(default, skip_serializing_if = "Vec::is_empty")]
373 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
374 #[serde(default, skip_serializing_if = "Option::is_none")]
375 pub region: Option<String>,
376 #[serde(rename = "roleARN", default, skip_serializing_if = "Option::is_none")]
377 pub role_arn: Option<String>,
378 #[serde(rename = "secretKey", default, skip_serializing_if = "Option::is_none")]
379 pub secret_key: Option<IoK8sApiCoreV1SecretKeySelector>,
380}
381impl From<&IoArgoprojEventsV1alpha1AwsLambdaTrigger> for IoArgoprojEventsV1alpha1AwsLambdaTrigger {
382 fn from(value: &IoArgoprojEventsV1alpha1AwsLambdaTrigger) -> Self {
383 value.clone()
384 }
385}
386#[derive(Clone, Debug, Deserialize, Serialize)]
387pub struct IoArgoprojEventsV1alpha1AzureEventHubsTrigger {
388 #[serde(default, skip_serializing_if = "Option::is_none")]
389 pub fqdn: Option<String>,
390 #[serde(rename = "hubName", default, skip_serializing_if = "Option::is_none")]
391 pub hub_name: Option<String>,
392 #[serde(default, skip_serializing_if = "Vec::is_empty")]
393 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
394 #[doc = "Payload is the list of key-value extracted from an event payload to construct the request payload."]
395 #[serde(default, skip_serializing_if = "Vec::is_empty")]
396 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
397 #[serde(
398 rename = "sharedAccessKey",
399 default,
400 skip_serializing_if = "Option::is_none"
401 )]
402 pub shared_access_key: Option<IoK8sApiCoreV1SecretKeySelector>,
403 #[serde(
404 rename = "sharedAccessKeyName",
405 default,
406 skip_serializing_if = "Option::is_none"
407 )]
408 pub shared_access_key_name: Option<IoK8sApiCoreV1SecretKeySelector>,
409}
410impl From<&IoArgoprojEventsV1alpha1AzureEventHubsTrigger>
411 for IoArgoprojEventsV1alpha1AzureEventHubsTrigger
412{
413 fn from(value: &IoArgoprojEventsV1alpha1AzureEventHubsTrigger) -> Self {
414 value.clone()
415 }
416}
417#[derive(Clone, Debug, Deserialize, Serialize)]
418pub struct IoArgoprojEventsV1alpha1AzureEventsHubEventSource {
419 #[serde(default, skip_serializing_if = "Option::is_none")]
420 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
421 #[serde(default, skip_serializing_if = "Option::is_none")]
422 pub fqdn: Option<String>,
423 #[serde(rename = "hubName", default, skip_serializing_if = "Option::is_none")]
424 pub hub_name: Option<String>,
425 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
426 pub metadata: std::collections::HashMap<String, String>,
427 #[serde(
428 rename = "sharedAccessKey",
429 default,
430 skip_serializing_if = "Option::is_none"
431 )]
432 pub shared_access_key: Option<IoK8sApiCoreV1SecretKeySelector>,
433 #[serde(
434 rename = "sharedAccessKeyName",
435 default,
436 skip_serializing_if = "Option::is_none"
437 )]
438 pub shared_access_key_name: Option<IoK8sApiCoreV1SecretKeySelector>,
439}
440impl From<&IoArgoprojEventsV1alpha1AzureEventsHubEventSource>
441 for IoArgoprojEventsV1alpha1AzureEventsHubEventSource
442{
443 fn from(value: &IoArgoprojEventsV1alpha1AzureEventsHubEventSource) -> Self {
444 value.clone()
445 }
446}
447#[derive(Clone, Debug, Deserialize, Serialize)]
448pub struct IoArgoprojEventsV1alpha1Backoff {
449 #[serde(default, skip_serializing_if = "Option::is_none")]
450 pub duration: Option<IoArgoprojEventsV1alpha1Int64OrString>,
451 #[serde(default, skip_serializing_if = "Option::is_none")]
452 pub factor: Option<IoArgoprojEventsV1alpha1Amount>,
453 #[serde(default, skip_serializing_if = "Option::is_none")]
454 pub jitter: Option<IoArgoprojEventsV1alpha1Amount>,
455 #[serde(default, skip_serializing_if = "Option::is_none")]
456 pub steps: Option<i64>,
457}
458impl From<&IoArgoprojEventsV1alpha1Backoff> for IoArgoprojEventsV1alpha1Backoff {
459 fn from(value: &IoArgoprojEventsV1alpha1Backoff) -> Self {
460 value.clone()
461 }
462}
463#[derive(Clone, Debug, Deserialize, Serialize)]
464pub struct IoArgoprojEventsV1alpha1BasicAuth {
465 #[doc = "Password refers to the Kubernetes secret that holds the password required for basic auth."]
466 #[serde(default, skip_serializing_if = "Option::is_none")]
467 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
468 #[doc = "Username refers to the Kubernetes secret that holds the username required for basic auth."]
469 #[serde(default, skip_serializing_if = "Option::is_none")]
470 pub username: Option<IoK8sApiCoreV1SecretKeySelector>,
471}
472impl From<&IoArgoprojEventsV1alpha1BasicAuth> for IoArgoprojEventsV1alpha1BasicAuth {
473 fn from(value: &IoArgoprojEventsV1alpha1BasicAuth) -> Self {
474 value.clone()
475 }
476}
477#[derive(Clone, Debug, Deserialize, Serialize)]
478pub struct IoArgoprojEventsV1alpha1BitbucketAuth {
479 #[serde(default, skip_serializing_if = "Option::is_none")]
480 pub basic: Option<IoArgoprojEventsV1alpha1BitbucketBasicAuth>,
481 #[serde(
482 rename = "oauthToken",
483 default,
484 skip_serializing_if = "Option::is_none"
485 )]
486 pub oauth_token: Option<IoK8sApiCoreV1SecretKeySelector>,
487}
488impl From<&IoArgoprojEventsV1alpha1BitbucketAuth> for IoArgoprojEventsV1alpha1BitbucketAuth {
489 fn from(value: &IoArgoprojEventsV1alpha1BitbucketAuth) -> Self {
490 value.clone()
491 }
492}
493#[derive(Clone, Debug, Deserialize, Serialize)]
494pub struct IoArgoprojEventsV1alpha1BitbucketBasicAuth {
495 #[doc = "Password refers to the K8s secret that holds the password."]
496 #[serde(default, skip_serializing_if = "Option::is_none")]
497 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
498 #[doc = "Username refers to the K8s secret that holds the username."]
499 #[serde(default, skip_serializing_if = "Option::is_none")]
500 pub username: Option<IoK8sApiCoreV1SecretKeySelector>,
501}
502impl From<&IoArgoprojEventsV1alpha1BitbucketBasicAuth>
503 for IoArgoprojEventsV1alpha1BitbucketBasicAuth
504{
505 fn from(value: &IoArgoprojEventsV1alpha1BitbucketBasicAuth) -> Self {
506 value.clone()
507 }
508}
509#[derive(Clone, Debug, Deserialize, Serialize)]
510pub struct IoArgoprojEventsV1alpha1BitbucketEventSource {
511 #[doc = "Auth information required to connect to Bitbucket."]
512 #[serde(default, skip_serializing_if = "Option::is_none")]
513 pub auth: Option<IoArgoprojEventsV1alpha1BitbucketAuth>,
514 #[serde(
515 rename = "deleteHookOnFinish",
516 default,
517 skip_serializing_if = "Option::is_none"
518 )]
519 pub delete_hook_on_finish: Option<bool>,
520 #[doc = "Events this webhook is subscribed to."]
521 #[serde(default, skip_serializing_if = "Vec::is_empty")]
522 pub events: Vec<String>,
523 #[serde(default, skip_serializing_if = "Option::is_none")]
524 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
525 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
526 pub metadata: std::collections::HashMap<String, String>,
527 #[serde(default, skip_serializing_if = "Option::is_none")]
528 pub owner: Option<String>,
529 #[serde(
530 rename = "projectKey",
531 default,
532 skip_serializing_if = "Option::is_none"
533 )]
534 pub project_key: Option<String>,
535 #[serde(default, skip_serializing_if = "Vec::is_empty")]
536 pub repositories: Vec<IoArgoprojEventsV1alpha1BitbucketRepository>,
537 #[serde(
538 rename = "repositorySlug",
539 default,
540 skip_serializing_if = "Option::is_none"
541 )]
542 pub repository_slug: Option<String>,
543 #[serde(default, skip_serializing_if = "Option::is_none")]
544 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
545}
546impl From<&IoArgoprojEventsV1alpha1BitbucketEventSource>
547 for IoArgoprojEventsV1alpha1BitbucketEventSource
548{
549 fn from(value: &IoArgoprojEventsV1alpha1BitbucketEventSource) -> Self {
550 value.clone()
551 }
552}
553#[derive(Clone, Debug, Deserialize, Serialize)]
554pub struct IoArgoprojEventsV1alpha1BitbucketRepository {
555 #[serde(default, skip_serializing_if = "Option::is_none")]
556 pub owner: Option<String>,
557 #[serde(
558 rename = "repositorySlug",
559 default,
560 skip_serializing_if = "Option::is_none"
561 )]
562 pub repository_slug: Option<String>,
563}
564impl From<&IoArgoprojEventsV1alpha1BitbucketRepository>
565 for IoArgoprojEventsV1alpha1BitbucketRepository
566{
567 fn from(value: &IoArgoprojEventsV1alpha1BitbucketRepository) -> Self {
568 value.clone()
569 }
570}
571#[derive(Clone, Debug, Deserialize, Serialize)]
572pub struct IoArgoprojEventsV1alpha1BitbucketServerEventSource {
573 #[serde(
574 rename = "accessToken",
575 default,
576 skip_serializing_if = "Option::is_none"
577 )]
578 pub access_token: Option<IoK8sApiCoreV1SecretKeySelector>,
579 #[serde(
580 rename = "bitbucketserverBaseURL",
581 default,
582 skip_serializing_if = "Option::is_none"
583 )]
584 pub bitbucketserver_base_url: Option<String>,
585 #[serde(
586 rename = "deleteHookOnFinish",
587 default,
588 skip_serializing_if = "Option::is_none"
589 )]
590 pub delete_hook_on_finish: Option<bool>,
591 #[serde(default, skip_serializing_if = "Vec::is_empty")]
592 pub events: Vec<String>,
593 #[serde(default, skip_serializing_if = "Option::is_none")]
594 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
595 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
596 pub metadata: std::collections::HashMap<String, String>,
597 #[serde(
598 rename = "projectKey",
599 default,
600 skip_serializing_if = "Option::is_none"
601 )]
602 pub project_key: Option<String>,
603 #[serde(default, skip_serializing_if = "Vec::is_empty")]
604 pub repositories: Vec<IoArgoprojEventsV1alpha1BitbucketServerRepository>,
605 #[serde(
606 rename = "repositorySlug",
607 default,
608 skip_serializing_if = "Option::is_none"
609 )]
610 pub repository_slug: Option<String>,
611 #[serde(default, skip_serializing_if = "Option::is_none")]
612 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
613 #[serde(
614 rename = "webhookSecret",
615 default,
616 skip_serializing_if = "Option::is_none"
617 )]
618 pub webhook_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
619}
620impl From<&IoArgoprojEventsV1alpha1BitbucketServerEventSource>
621 for IoArgoprojEventsV1alpha1BitbucketServerEventSource
622{
623 fn from(value: &IoArgoprojEventsV1alpha1BitbucketServerEventSource) -> Self {
624 value.clone()
625 }
626}
627#[derive(Clone, Debug, Deserialize, Serialize)]
628pub struct IoArgoprojEventsV1alpha1BitbucketServerRepository {
629 #[serde(
630 rename = "projectKey",
631 default,
632 skip_serializing_if = "Option::is_none"
633 )]
634 pub project_key: Option<String>,
635 #[serde(
636 rename = "repositorySlug",
637 default,
638 skip_serializing_if = "Option::is_none"
639 )]
640 pub repository_slug: Option<String>,
641}
642impl From<&IoArgoprojEventsV1alpha1BitbucketServerRepository>
643 for IoArgoprojEventsV1alpha1BitbucketServerRepository
644{
645 fn from(value: &IoArgoprojEventsV1alpha1BitbucketServerRepository) -> Self {
646 value.clone()
647 }
648}
649#[derive(Clone, Debug, Deserialize, Serialize)]
650pub struct IoArgoprojEventsV1alpha1CalendarEventSource {
651 #[doc = "ExclusionDates defines the list of DATE-TIME exceptions for recurring events."]
652 #[serde(
653 rename = "exclusionDates",
654 default,
655 skip_serializing_if = "Vec::is_empty"
656 )]
657 pub exclusion_dates: Vec<String>,
658 #[serde(default, skip_serializing_if = "Option::is_none")]
659 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
660 #[serde(default, skip_serializing_if = "Option::is_none")]
661 pub interval: Option<String>,
662 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
663 pub metadata: std::collections::HashMap<String, String>,
664 #[serde(default, skip_serializing_if = "Option::is_none")]
665 pub persistence: Option<IoArgoprojEventsV1alpha1EventPersistence>,
666 #[serde(default, skip_serializing_if = "Option::is_none")]
667 pub schedule: Option<String>,
668 #[serde(default, skip_serializing_if = "Option::is_none")]
669 pub timezone: Option<String>,
670}
671impl From<&IoArgoprojEventsV1alpha1CalendarEventSource>
672 for IoArgoprojEventsV1alpha1CalendarEventSource
673{
674 fn from(value: &IoArgoprojEventsV1alpha1CalendarEventSource) -> Self {
675 value.clone()
676 }
677}
678#[derive(Clone, Debug, Deserialize, Serialize)]
679pub struct IoArgoprojEventsV1alpha1CatchupConfiguration {
680 #[serde(default, skip_serializing_if = "Option::is_none")]
681 pub enabled: Option<bool>,
682 #[serde(
683 rename = "maxDuration",
684 default,
685 skip_serializing_if = "Option::is_none"
686 )]
687 pub max_duration: Option<String>,
688}
689impl From<&IoArgoprojEventsV1alpha1CatchupConfiguration>
690 for IoArgoprojEventsV1alpha1CatchupConfiguration
691{
692 fn from(value: &IoArgoprojEventsV1alpha1CatchupConfiguration) -> Self {
693 value.clone()
694 }
695}
696#[derive(Clone, Debug, Deserialize, Serialize)]
697pub struct IoArgoprojEventsV1alpha1Condition {
698 #[serde(
699 rename = "lastTransitionTime",
700 default,
701 skip_serializing_if = "Option::is_none"
702 )]
703 pub last_transition_time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
704 #[serde(default, skip_serializing_if = "Option::is_none")]
705 pub message: Option<String>,
706 #[serde(default, skip_serializing_if = "Option::is_none")]
707 pub reason: Option<String>,
708 #[serde(default, skip_serializing_if = "Option::is_none")]
709 pub status: Option<String>,
710 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
711 pub type_: Option<String>,
712}
713impl From<&IoArgoprojEventsV1alpha1Condition> for IoArgoprojEventsV1alpha1Condition {
714 fn from(value: &IoArgoprojEventsV1alpha1Condition) -> Self {
715 value.clone()
716 }
717}
718#[derive(Clone, Debug, Deserialize, Serialize)]
719pub struct IoArgoprojEventsV1alpha1ConditionsResetByTime {
720 #[serde(default, skip_serializing_if = "Option::is_none")]
721 pub cron: Option<String>,
722 #[serde(default, skip_serializing_if = "Option::is_none")]
723 pub timezone: Option<String>,
724}
725impl From<&IoArgoprojEventsV1alpha1ConditionsResetByTime>
726 for IoArgoprojEventsV1alpha1ConditionsResetByTime
727{
728 fn from(value: &IoArgoprojEventsV1alpha1ConditionsResetByTime) -> Self {
729 value.clone()
730 }
731}
732#[derive(Clone, Debug, Deserialize, Serialize)]
733pub struct IoArgoprojEventsV1alpha1ConditionsResetCriteria {
734 #[serde(rename = "byTime", default, skip_serializing_if = "Option::is_none")]
735 pub by_time: Option<IoArgoprojEventsV1alpha1ConditionsResetByTime>,
736}
737impl From<&IoArgoprojEventsV1alpha1ConditionsResetCriteria>
738 for IoArgoprojEventsV1alpha1ConditionsResetCriteria
739{
740 fn from(value: &IoArgoprojEventsV1alpha1ConditionsResetCriteria) -> Self {
741 value.clone()
742 }
743}
744#[derive(Clone, Debug, Deserialize, Serialize)]
745pub struct IoArgoprojEventsV1alpha1ConfigMapPersistence {
746 #[serde(
747 rename = "createIfNotExist",
748 default,
749 skip_serializing_if = "Option::is_none"
750 )]
751 pub create_if_not_exist: Option<bool>,
752 #[serde(default, skip_serializing_if = "Option::is_none")]
753 pub name: Option<String>,
754}
755impl From<&IoArgoprojEventsV1alpha1ConfigMapPersistence>
756 for IoArgoprojEventsV1alpha1ConfigMapPersistence
757{
758 fn from(value: &IoArgoprojEventsV1alpha1ConfigMapPersistence) -> Self {
759 value.clone()
760 }
761}
762#[doc = "CustomTrigger refers to the specification of the custom trigger."]
763#[derive(Clone, Debug, Deserialize, Serialize)]
764pub struct IoArgoprojEventsV1alpha1CustomTrigger {
765 #[doc = "CertSecret refers to the secret that contains cert for secure connection between sensor and custom trigger gRPC server."]
766 #[serde(
767 rename = "certSecret",
768 default,
769 skip_serializing_if = "Option::is_none"
770 )]
771 pub cert_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
772 #[doc = "Parameters is the list of parameters that is applied to resolved custom trigger trigger object."]
773 #[serde(default, skip_serializing_if = "Vec::is_empty")]
774 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
775 #[doc = "Payload is the list of key-value extracted from an event payload to construct the request payload."]
776 #[serde(default, skip_serializing_if = "Vec::is_empty")]
777 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
778 #[serde(default, skip_serializing_if = "Option::is_none")]
779 pub secure: Option<bool>,
780 #[doc = "ServerNameOverride for the secure connection between sensor and custom trigger gRPC server."]
781 #[serde(
782 rename = "serverNameOverride",
783 default,
784 skip_serializing_if = "Option::is_none"
785 )]
786 pub server_name_override: Option<String>,
787 #[serde(rename = "serverURL", default, skip_serializing_if = "Option::is_none")]
788 pub server_url: Option<String>,
789 #[doc = "Spec is the custom trigger resource specification that custom trigger gRPC server knows how to interpret."]
790 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
791 pub spec: std::collections::HashMap<String, String>,
792}
793impl From<&IoArgoprojEventsV1alpha1CustomTrigger> for IoArgoprojEventsV1alpha1CustomTrigger {
794 fn from(value: &IoArgoprojEventsV1alpha1CustomTrigger) -> Self {
795 value.clone()
796 }
797}
798#[derive(Clone, Debug, Deserialize, Serialize)]
799pub struct IoArgoprojEventsV1alpha1DataFilter {
800 #[doc = "Comparator compares the event data with a user given value.\nCan be \">=\", \">\", \"=\", \"!=\", \"<\", or \"<=\".\nIs optional, and if left blank treated as equality \"=\"."]
801 #[serde(default, skip_serializing_if = "Option::is_none")]
802 pub comparator: Option<String>,
803 #[doc = "Path is the JSONPath of the event's (JSON decoded) data key\nPath is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.\nTo access an array value use the index as the key. The dot and wildcard characters can be escaped with '\\\\'.\nSee https://github.com/tidwall/gjson#path-syntax for more information on how to use this."]
804 #[serde(default, skip_serializing_if = "Option::is_none")]
805 pub path: Option<String>,
806 #[serde(default, skip_serializing_if = "Option::is_none")]
807 pub template: Option<String>,
808 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
809 pub type_: Option<String>,
810 #[serde(default, skip_serializing_if = "Vec::is_empty")]
811 pub value: Vec<String>,
812}
813impl From<&IoArgoprojEventsV1alpha1DataFilter> for IoArgoprojEventsV1alpha1DataFilter {
814 fn from(value: &IoArgoprojEventsV1alpha1DataFilter) -> Self {
815 value.clone()
816 }
817}
818#[derive(Clone, Debug, Deserialize, Serialize)]
819pub struct IoArgoprojEventsV1alpha1EmitterEventSource {
820 #[doc = "Broker URI to connect to."]
821 #[serde(default, skip_serializing_if = "Option::is_none")]
822 pub broker: Option<String>,
823 #[serde(
824 rename = "channelKey",
825 default,
826 skip_serializing_if = "Option::is_none"
827 )]
828 pub channel_key: Option<String>,
829 #[serde(
830 rename = "channelName",
831 default,
832 skip_serializing_if = "Option::is_none"
833 )]
834 pub channel_name: Option<String>,
835 #[serde(
836 rename = "connectionBackoff",
837 default,
838 skip_serializing_if = "Option::is_none"
839 )]
840 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
841 #[serde(default, skip_serializing_if = "Option::is_none")]
842 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
843 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
844 pub json_body: Option<bool>,
845 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
846 pub metadata: std::collections::HashMap<String, String>,
847 #[serde(default, skip_serializing_if = "Option::is_none")]
848 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
849 #[serde(default, skip_serializing_if = "Option::is_none")]
850 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
851 #[serde(default, skip_serializing_if = "Option::is_none")]
852 pub username: Option<IoK8sApiCoreV1SecretKeySelector>,
853}
854impl From<&IoArgoprojEventsV1alpha1EmitterEventSource>
855 for IoArgoprojEventsV1alpha1EmitterEventSource
856{
857 fn from(value: &IoArgoprojEventsV1alpha1EmitterEventSource) -> Self {
858 value.clone()
859 }
860}
861#[derive(Clone, Debug, Deserialize, Serialize)]
862pub struct IoArgoprojEventsV1alpha1EventContext {
863 #[doc = "DataContentType - A MIME (RFC2046) string describing the media type of `data`."]
864 #[serde(default, skip_serializing_if = "Option::is_none")]
865 pub datacontenttype: Option<String>,
866 #[doc = "ID of the event; must be non-empty and unique within the scope of the producer."]
867 #[serde(default, skip_serializing_if = "Option::is_none")]
868 pub id: Option<String>,
869 #[doc = "Source - A URI describing the event producer."]
870 #[serde(default, skip_serializing_if = "Option::is_none")]
871 pub source: Option<String>,
872 #[doc = "SpecVersion - The version of the CloudEvents specification used by the io.argoproj.workflow.v1alpha1."]
873 #[serde(default, skip_serializing_if = "Option::is_none")]
874 pub specversion: Option<String>,
875 #[serde(default, skip_serializing_if = "Option::is_none")]
876 pub subject: Option<String>,
877 #[doc = "Time - A Timestamp when the event happened."]
878 #[serde(default, skip_serializing_if = "Option::is_none")]
879 pub time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
880 #[doc = "Type - The type of the occurrence which has happened."]
881 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
882 pub type_: Option<String>,
883}
884impl From<&IoArgoprojEventsV1alpha1EventContext> for IoArgoprojEventsV1alpha1EventContext {
885 fn from(value: &IoArgoprojEventsV1alpha1EventContext) -> Self {
886 value.clone()
887 }
888}
889#[derive(Clone, Debug, Deserialize, Serialize)]
890pub struct IoArgoprojEventsV1alpha1EventDependency {
891 #[serde(rename = "eventName", default, skip_serializing_if = "Option::is_none")]
892 pub event_name: Option<String>,
893 #[serde(
894 rename = "eventSourceName",
895 default,
896 skip_serializing_if = "Option::is_none"
897 )]
898 pub event_source_name: Option<String>,
899 #[serde(default, skip_serializing_if = "Option::is_none")]
900 pub filters: Option<IoArgoprojEventsV1alpha1EventDependencyFilter>,
901 #[doc = "FiltersLogicalOperator defines how different filters are evaluated together.\nAvailable values: and (&&), or (||)\nIs optional and if left blank treated as and (&&)."]
902 #[serde(
903 rename = "filtersLogicalOperator",
904 default,
905 skip_serializing_if = "Option::is_none"
906 )]
907 pub filters_logical_operator: Option<String>,
908 #[serde(default, skip_serializing_if = "Option::is_none")]
909 pub name: Option<String>,
910 #[serde(default, skip_serializing_if = "Option::is_none")]
911 pub transform: Option<IoArgoprojEventsV1alpha1EventDependencyTransformer>,
912}
913impl From<&IoArgoprojEventsV1alpha1EventDependency> for IoArgoprojEventsV1alpha1EventDependency {
914 fn from(value: &IoArgoprojEventsV1alpha1EventDependency) -> Self {
915 value.clone()
916 }
917}
918#[doc = "EventDependencyFilter defines filters and constraints for a io.argoproj.workflow.v1alpha1."]
919#[derive(Clone, Debug, Deserialize, Serialize)]
920pub struct IoArgoprojEventsV1alpha1EventDependencyFilter {
921 #[serde(default, skip_serializing_if = "Option::is_none")]
922 pub context: Option<IoArgoprojEventsV1alpha1EventContext>,
923 #[serde(default, skip_serializing_if = "Vec::is_empty")]
924 pub data: Vec<IoArgoprojEventsV1alpha1DataFilter>,
925 #[doc = "DataLogicalOperator defines how multiple Data filters (if defined) are evaluated together.\nAvailable values: and (&&), or (||)\nIs optional and if left blank treated as and (&&)."]
926 #[serde(
927 rename = "dataLogicalOperator",
928 default,
929 skip_serializing_if = "Option::is_none"
930 )]
931 pub data_logical_operator: Option<String>,
932 #[doc = "ExprLogicalOperator defines how multiple Exprs filters (if defined) are evaluated together.\nAvailable values: and (&&), or (||)\nIs optional and if left blank treated as and (&&)."]
933 #[serde(
934 rename = "exprLogicalOperator",
935 default,
936 skip_serializing_if = "Option::is_none"
937 )]
938 pub expr_logical_operator: Option<String>,
939 #[doc = "Exprs contains the list of expressions evaluated against the event payload."]
940 #[serde(default, skip_serializing_if = "Vec::is_empty")]
941 pub exprs: Vec<IoArgoprojEventsV1alpha1ExprFilter>,
942 #[doc = "Script refers to a Lua script evaluated to determine the validity of an io.argoproj.workflow.v1alpha1."]
943 #[serde(default, skip_serializing_if = "Option::is_none")]
944 pub script: Option<String>,
945 #[serde(default, skip_serializing_if = "Option::is_none")]
946 pub time: Option<IoArgoprojEventsV1alpha1TimeFilter>,
947}
948impl From<&IoArgoprojEventsV1alpha1EventDependencyFilter>
949 for IoArgoprojEventsV1alpha1EventDependencyFilter
950{
951 fn from(value: &IoArgoprojEventsV1alpha1EventDependencyFilter) -> Self {
952 value.clone()
953 }
954}
955#[derive(Clone, Debug, Deserialize, Serialize)]
956pub struct IoArgoprojEventsV1alpha1EventDependencyTransformer {
957 #[serde(default, skip_serializing_if = "Option::is_none")]
958 pub jq: Option<String>,
959 #[serde(default, skip_serializing_if = "Option::is_none")]
960 pub script: Option<String>,
961}
962impl From<&IoArgoprojEventsV1alpha1EventDependencyTransformer>
963 for IoArgoprojEventsV1alpha1EventDependencyTransformer
964{
965 fn from(value: &IoArgoprojEventsV1alpha1EventDependencyTransformer) -> Self {
966 value.clone()
967 }
968}
969#[derive(Clone, Debug, Deserialize, Serialize)]
970pub struct IoArgoprojEventsV1alpha1EventPersistence {
971 #[serde(default, skip_serializing_if = "Option::is_none")]
972 pub catchup: Option<IoArgoprojEventsV1alpha1CatchupConfiguration>,
973 #[serde(rename = "configMap", default, skip_serializing_if = "Option::is_none")]
974 pub config_map: Option<IoArgoprojEventsV1alpha1ConfigMapPersistence>,
975}
976impl From<&IoArgoprojEventsV1alpha1EventPersistence> for IoArgoprojEventsV1alpha1EventPersistence {
977 fn from(value: &IoArgoprojEventsV1alpha1EventPersistence) -> Self {
978 value.clone()
979 }
980}
981#[derive(Clone, Debug, Deserialize, Serialize)]
982pub struct IoArgoprojEventsV1alpha1EventSource {
983 #[serde(default, skip_serializing_if = "Option::is_none")]
984 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ObjectMeta>,
985 #[serde(default, skip_serializing_if = "Option::is_none")]
986 pub spec: Option<IoArgoprojEventsV1alpha1EventSourceSpec>,
987 #[serde(default, skip_serializing_if = "Option::is_none")]
988 pub status: Option<IoArgoprojEventsV1alpha1EventSourceStatus>,
989}
990impl From<&IoArgoprojEventsV1alpha1EventSource> for IoArgoprojEventsV1alpha1EventSource {
991 fn from(value: &IoArgoprojEventsV1alpha1EventSource) -> Self {
992 value.clone()
993 }
994}
995#[derive(Clone, Debug, Deserialize, Serialize)]
996pub struct IoArgoprojEventsV1alpha1EventSourceFilter {
997 #[serde(default, skip_serializing_if = "Option::is_none")]
998 pub expression: Option<String>,
999}
1000impl From<&IoArgoprojEventsV1alpha1EventSourceFilter>
1001 for IoArgoprojEventsV1alpha1EventSourceFilter
1002{
1003 fn from(value: &IoArgoprojEventsV1alpha1EventSourceFilter) -> Self {
1004 value.clone()
1005 }
1006}
1007#[derive(Clone, Debug, Deserialize, Serialize)]
1008pub struct IoArgoprojEventsV1alpha1EventSourceList {
1009 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1010 pub items: Vec<IoArgoprojEventsV1alpha1EventSource>,
1011 #[serde(default, skip_serializing_if = "Option::is_none")]
1012 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ListMeta>,
1013}
1014impl From<&IoArgoprojEventsV1alpha1EventSourceList> for IoArgoprojEventsV1alpha1EventSourceList {
1015 fn from(value: &IoArgoprojEventsV1alpha1EventSourceList) -> Self {
1016 value.clone()
1017 }
1018}
1019#[derive(Clone, Debug, Deserialize, Serialize)]
1020pub struct IoArgoprojEventsV1alpha1EventSourceSpec {
1021 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1022 pub amqp: std::collections::HashMap<String, IoArgoprojEventsV1alpha1AmqpEventSource>,
1023 #[serde(
1024 rename = "azureEventsHub",
1025 default,
1026 skip_serializing_if = "std::collections::HashMap::is_empty"
1027 )]
1028 pub azure_events_hub:
1029 std::collections::HashMap<String, IoArgoprojEventsV1alpha1AzureEventsHubEventSource>,
1030 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1031 pub bitbucket: std::collections::HashMap<String, IoArgoprojEventsV1alpha1BitbucketEventSource>,
1032 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1033 pub bitbucketserver:
1034 std::collections::HashMap<String, IoArgoprojEventsV1alpha1BitbucketServerEventSource>,
1035 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1036 pub calendar: std::collections::HashMap<String, IoArgoprojEventsV1alpha1CalendarEventSource>,
1037 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1038 pub emitter: std::collections::HashMap<String, IoArgoprojEventsV1alpha1EmitterEventSource>,
1039 #[serde(
1040 rename = "eventBusName",
1041 default,
1042 skip_serializing_if = "Option::is_none"
1043 )]
1044 pub event_bus_name: Option<String>,
1045 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1046 pub file: std::collections::HashMap<String, IoArgoprojEventsV1alpha1FileEventSource>,
1047 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1048 pub generic: std::collections::HashMap<String, IoArgoprojEventsV1alpha1GenericEventSource>,
1049 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1050 pub github: std::collections::HashMap<String, IoArgoprojEventsV1alpha1GithubEventSource>,
1051 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1052 pub gitlab: std::collections::HashMap<String, IoArgoprojEventsV1alpha1GitlabEventSource>,
1053 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1054 pub hdfs: std::collections::HashMap<String, IoArgoprojEventsV1alpha1HdfsEventSource>,
1055 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1056 pub kafka: std::collections::HashMap<String, IoArgoprojEventsV1alpha1KafkaEventSource>,
1057 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1058 pub minio: std::collections::HashMap<String, IoArgoprojEventsV1alpha1S3Artifact>,
1059 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1060 pub mqtt: std::collections::HashMap<String, IoArgoprojEventsV1alpha1MqttEventSource>,
1061 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1062 pub nats: std::collections::HashMap<String, IoArgoprojEventsV1alpha1NatsEventsSource>,
1063 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1064 pub nsq: std::collections::HashMap<String, IoArgoprojEventsV1alpha1NsqEventSource>,
1065 #[serde(
1066 rename = "pubSub",
1067 default,
1068 skip_serializing_if = "std::collections::HashMap::is_empty"
1069 )]
1070 pub pub_sub: std::collections::HashMap<String, IoArgoprojEventsV1alpha1PubSubEventSource>,
1071 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1072 pub pulsar: std::collections::HashMap<String, IoArgoprojEventsV1alpha1PulsarEventSource>,
1073 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1074 pub redis: std::collections::HashMap<String, IoArgoprojEventsV1alpha1RedisEventSource>,
1075 #[serde(
1076 rename = "redisStream",
1077 default,
1078 skip_serializing_if = "std::collections::HashMap::is_empty"
1079 )]
1080 pub redis_stream:
1081 std::collections::HashMap<String, IoArgoprojEventsV1alpha1RedisStreamEventSource>,
1082 #[serde(default, skip_serializing_if = "Option::is_none")]
1083 pub replicas: Option<i64>,
1084 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1085 pub resource: std::collections::HashMap<String, IoArgoprojEventsV1alpha1ResourceEventSource>,
1086 #[serde(default, skip_serializing_if = "Option::is_none")]
1087 pub service: Option<IoArgoprojEventsV1alpha1Service>,
1088 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1089 pub slack: std::collections::HashMap<String, IoArgoprojEventsV1alpha1SlackEventSource>,
1090 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1091 pub sns: std::collections::HashMap<String, IoArgoprojEventsV1alpha1SnsEventSource>,
1092 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1093 pub sqs: std::collections::HashMap<String, IoArgoprojEventsV1alpha1SqsEventSource>,
1094 #[serde(
1095 rename = "storageGrid",
1096 default,
1097 skip_serializing_if = "std::collections::HashMap::is_empty"
1098 )]
1099 pub storage_grid:
1100 std::collections::HashMap<String, IoArgoprojEventsV1alpha1StorageGridEventSource>,
1101 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1102 pub stripe: std::collections::HashMap<String, IoArgoprojEventsV1alpha1StripeEventSource>,
1103 #[serde(default, skip_serializing_if = "Option::is_none")]
1104 pub template: Option<IoArgoprojEventsV1alpha1Template>,
1105 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1106 pub webhook: std::collections::HashMap<String, IoArgoprojEventsV1alpha1WebhookEventSource>,
1107}
1108impl From<&IoArgoprojEventsV1alpha1EventSourceSpec> for IoArgoprojEventsV1alpha1EventSourceSpec {
1109 fn from(value: &IoArgoprojEventsV1alpha1EventSourceSpec) -> Self {
1110 value.clone()
1111 }
1112}
1113#[derive(Clone, Debug, Deserialize, Serialize)]
1114pub struct IoArgoprojEventsV1alpha1EventSourceStatus {
1115 #[serde(default, skip_serializing_if = "Option::is_none")]
1116 pub status: Option<IoArgoprojEventsV1alpha1Status>,
1117}
1118impl From<&IoArgoprojEventsV1alpha1EventSourceStatus>
1119 for IoArgoprojEventsV1alpha1EventSourceStatus
1120{
1121 fn from(value: &IoArgoprojEventsV1alpha1EventSourceStatus) -> Self {
1122 value.clone()
1123 }
1124}
1125#[derive(Clone, Debug, Deserialize, Serialize)]
1126pub struct IoArgoprojEventsV1alpha1ExprFilter {
1127 #[doc = "Expr refers to the expression that determines the outcome of the filter."]
1128 #[serde(default, skip_serializing_if = "Option::is_none")]
1129 pub expr: Option<String>,
1130 #[doc = "Fields refers to set of keys that refer to the paths within event payload."]
1131 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1132 pub fields: Vec<IoArgoprojEventsV1alpha1PayloadField>,
1133}
1134impl From<&IoArgoprojEventsV1alpha1ExprFilter> for IoArgoprojEventsV1alpha1ExprFilter {
1135 fn from(value: &IoArgoprojEventsV1alpha1ExprFilter) -> Self {
1136 value.clone()
1137 }
1138}
1139#[derive(Clone, Debug, Deserialize, Serialize)]
1140pub struct IoArgoprojEventsV1alpha1FileArtifact {
1141 #[serde(default, skip_serializing_if = "Option::is_none")]
1142 pub path: Option<String>,
1143}
1144impl From<&IoArgoprojEventsV1alpha1FileArtifact> for IoArgoprojEventsV1alpha1FileArtifact {
1145 fn from(value: &IoArgoprojEventsV1alpha1FileArtifact) -> Self {
1146 value.clone()
1147 }
1148}
1149#[doc = "FileEventSource describes an event-source for file related events."]
1150#[derive(Clone, Debug, Deserialize, Serialize)]
1151pub struct IoArgoprojEventsV1alpha1FileEventSource {
1152 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
1153 pub event_type: Option<String>,
1154 #[serde(default, skip_serializing_if = "Option::is_none")]
1155 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1156 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1157 pub metadata: std::collections::HashMap<String, String>,
1158 #[serde(default, skip_serializing_if = "Option::is_none")]
1159 pub polling: Option<bool>,
1160 #[serde(
1161 rename = "watchPathConfig",
1162 default,
1163 skip_serializing_if = "Option::is_none"
1164 )]
1165 pub watch_path_config: Option<IoArgoprojEventsV1alpha1WatchPathConfig>,
1166}
1167impl From<&IoArgoprojEventsV1alpha1FileEventSource> for IoArgoprojEventsV1alpha1FileEventSource {
1168 fn from(value: &IoArgoprojEventsV1alpha1FileEventSource) -> Self {
1169 value.clone()
1170 }
1171}
1172#[doc = "GenericEventSource refers to a generic event source. It can be used to implement a custom event source."]
1173#[derive(Clone, Debug, Deserialize, Serialize)]
1174pub struct IoArgoprojEventsV1alpha1GenericEventSource {
1175 #[serde(
1176 rename = "authSecret",
1177 default,
1178 skip_serializing_if = "Option::is_none"
1179 )]
1180 pub auth_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1181 #[serde(default, skip_serializing_if = "Option::is_none")]
1182 pub config: Option<String>,
1183 #[serde(default, skip_serializing_if = "Option::is_none")]
1184 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1185 #[doc = "Insecure determines the type of connection."]
1186 #[serde(default, skip_serializing_if = "Option::is_none")]
1187 pub insecure: Option<bool>,
1188 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1189 pub json_body: Option<bool>,
1190 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1191 pub metadata: std::collections::HashMap<String, String>,
1192 #[doc = "URL of the gRPC server that implements the event source."]
1193 #[serde(default, skip_serializing_if = "Option::is_none")]
1194 pub url: Option<String>,
1195}
1196impl From<&IoArgoprojEventsV1alpha1GenericEventSource>
1197 for IoArgoprojEventsV1alpha1GenericEventSource
1198{
1199 fn from(value: &IoArgoprojEventsV1alpha1GenericEventSource) -> Self {
1200 value.clone()
1201 }
1202}
1203#[derive(Clone, Debug, Deserialize, Serialize)]
1204pub struct IoArgoprojEventsV1alpha1GitArtifact {
1205 #[serde(default, skip_serializing_if = "Option::is_none")]
1206 pub branch: Option<String>,
1207 #[doc = "Directory to clone the repository. We clone complete directory because GitArtifact is not limited to any specific Git service providers.\nHence we don't use any specific git provider client."]
1208 #[serde(
1209 rename = "cloneDirectory",
1210 default,
1211 skip_serializing_if = "Option::is_none"
1212 )]
1213 pub clone_directory: Option<String>,
1214 #[serde(default, skip_serializing_if = "Option::is_none")]
1215 pub creds: Option<IoArgoprojEventsV1alpha1GitCreds>,
1216 #[serde(rename = "filePath", default, skip_serializing_if = "Option::is_none")]
1217 pub file_path: Option<String>,
1218 #[serde(
1219 rename = "insecureIgnoreHostKey",
1220 default,
1221 skip_serializing_if = "Option::is_none"
1222 )]
1223 pub insecure_ignore_host_key: Option<bool>,
1224 #[serde(rename = "ref", default, skip_serializing_if = "Option::is_none")]
1225 pub ref_: Option<String>,
1226 #[serde(default, skip_serializing_if = "Option::is_none")]
1227 pub remote: Option<IoArgoprojEventsV1alpha1GitRemoteConfig>,
1228 #[serde(
1229 rename = "sshKeySecret",
1230 default,
1231 skip_serializing_if = "Option::is_none"
1232 )]
1233 pub ssh_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1234 #[serde(default, skip_serializing_if = "Option::is_none")]
1235 pub tag: Option<String>,
1236 #[serde(default, skip_serializing_if = "Option::is_none")]
1237 pub url: Option<String>,
1238}
1239impl From<&IoArgoprojEventsV1alpha1GitArtifact> for IoArgoprojEventsV1alpha1GitArtifact {
1240 fn from(value: &IoArgoprojEventsV1alpha1GitArtifact) -> Self {
1241 value.clone()
1242 }
1243}
1244#[derive(Clone, Debug, Deserialize, Serialize)]
1245pub struct IoArgoprojEventsV1alpha1GitCreds {
1246 #[serde(default, skip_serializing_if = "Option::is_none")]
1247 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
1248 #[serde(default, skip_serializing_if = "Option::is_none")]
1249 pub username: Option<IoK8sApiCoreV1SecretKeySelector>,
1250}
1251impl From<&IoArgoprojEventsV1alpha1GitCreds> for IoArgoprojEventsV1alpha1GitCreds {
1252 fn from(value: &IoArgoprojEventsV1alpha1GitCreds) -> Self {
1253 value.clone()
1254 }
1255}
1256#[derive(Clone, Debug, Deserialize, Serialize)]
1257pub struct IoArgoprojEventsV1alpha1GitRemoteConfig {
1258 #[doc = "Name of the remote to fetch from."]
1259 #[serde(default, skip_serializing_if = "Option::is_none")]
1260 pub name: Option<String>,
1261 #[doc = "URLs the URLs of a remote repository. It must be non-empty. Fetch will\nalways use the first URL, while push will use all of them."]
1262 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1263 pub urls: Vec<String>,
1264}
1265impl From<&IoArgoprojEventsV1alpha1GitRemoteConfig> for IoArgoprojEventsV1alpha1GitRemoteConfig {
1266 fn from(value: &IoArgoprojEventsV1alpha1GitRemoteConfig) -> Self {
1267 value.clone()
1268 }
1269}
1270#[derive(Clone, Debug, Deserialize, Serialize)]
1271pub struct IoArgoprojEventsV1alpha1GithubAppCreds {
1272 #[serde(rename = "appID", default, skip_serializing_if = "Option::is_none")]
1273 pub app_id: Option<String>,
1274 #[serde(
1275 rename = "installationID",
1276 default,
1277 skip_serializing_if = "Option::is_none"
1278 )]
1279 pub installation_id: Option<String>,
1280 #[serde(
1281 rename = "privateKey",
1282 default,
1283 skip_serializing_if = "Option::is_none"
1284 )]
1285 pub private_key: Option<IoK8sApiCoreV1SecretKeySelector>,
1286}
1287impl From<&IoArgoprojEventsV1alpha1GithubAppCreds> for IoArgoprojEventsV1alpha1GithubAppCreds {
1288 fn from(value: &IoArgoprojEventsV1alpha1GithubAppCreds) -> Self {
1289 value.clone()
1290 }
1291}
1292#[derive(Clone, Debug, Deserialize, Serialize)]
1293pub struct IoArgoprojEventsV1alpha1GithubEventSource {
1294 #[serde(default, skip_serializing_if = "Option::is_none")]
1295 pub active: Option<bool>,
1296 #[serde(rename = "apiToken", default, skip_serializing_if = "Option::is_none")]
1297 pub api_token: Option<IoK8sApiCoreV1SecretKeySelector>,
1298 #[serde(
1299 rename = "contentType",
1300 default,
1301 skip_serializing_if = "Option::is_none"
1302 )]
1303 pub content_type: Option<String>,
1304 #[serde(
1305 rename = "deleteHookOnFinish",
1306 default,
1307 skip_serializing_if = "Option::is_none"
1308 )]
1309 pub delete_hook_on_finish: Option<bool>,
1310 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1311 pub events: Vec<String>,
1312 #[serde(default, skip_serializing_if = "Option::is_none")]
1313 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1314 #[serde(rename = "githubApp", default, skip_serializing_if = "Option::is_none")]
1315 pub github_app: Option<IoArgoprojEventsV1alpha1GithubAppCreds>,
1316 #[serde(
1317 rename = "githubBaseURL",
1318 default,
1319 skip_serializing_if = "Option::is_none"
1320 )]
1321 pub github_base_url: Option<String>,
1322 #[serde(
1323 rename = "githubUploadURL",
1324 default,
1325 skip_serializing_if = "Option::is_none"
1326 )]
1327 pub github_upload_url: Option<String>,
1328 #[serde(default, skip_serializing_if = "Option::is_none")]
1329 pub id: Option<String>,
1330 #[serde(default, skip_serializing_if = "Option::is_none")]
1331 pub insecure: Option<bool>,
1332 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1333 pub metadata: std::collections::HashMap<String, String>,
1334 #[doc = "Organizations holds the names of organizations (used for organization level webhooks). Not required if Repositories is set."]
1335 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1336 pub organizations: Vec<String>,
1337 #[serde(default, skip_serializing_if = "Option::is_none")]
1338 pub owner: Option<String>,
1339 #[doc = "Repositories holds the information of repositories, which uses repo owner as the key,\nand list of repo names as the value. Not required if Organizations is set."]
1340 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1341 pub repositories: Vec<IoArgoprojEventsV1alpha1OwnedRepositories>,
1342 #[serde(default, skip_serializing_if = "Option::is_none")]
1343 pub repository: Option<String>,
1344 #[serde(default, skip_serializing_if = "Option::is_none")]
1345 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
1346 #[serde(
1347 rename = "webhookSecret",
1348 default,
1349 skip_serializing_if = "Option::is_none"
1350 )]
1351 pub webhook_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1352}
1353impl From<&IoArgoprojEventsV1alpha1GithubEventSource>
1354 for IoArgoprojEventsV1alpha1GithubEventSource
1355{
1356 fn from(value: &IoArgoprojEventsV1alpha1GithubEventSource) -> Self {
1357 value.clone()
1358 }
1359}
1360#[derive(Clone, Debug, Deserialize, Serialize)]
1361pub struct IoArgoprojEventsV1alpha1GitlabEventSource {
1362 #[serde(
1363 rename = "accessToken",
1364 default,
1365 skip_serializing_if = "Option::is_none"
1366 )]
1367 pub access_token: Option<IoK8sApiCoreV1SecretKeySelector>,
1368 #[serde(
1369 rename = "deleteHookOnFinish",
1370 default,
1371 skip_serializing_if = "Option::is_none"
1372 )]
1373 pub delete_hook_on_finish: Option<bool>,
1374 #[serde(
1375 rename = "enableSSLVerification",
1376 default,
1377 skip_serializing_if = "Option::is_none"
1378 )]
1379 pub enable_ssl_verification: Option<bool>,
1380 #[doc = "Events are gitlab event to listen to.\nRefer https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794."]
1381 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1382 pub events: Vec<String>,
1383 #[serde(default, skip_serializing_if = "Option::is_none")]
1384 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1385 #[serde(
1386 rename = "gitlabBaseURL",
1387 default,
1388 skip_serializing_if = "Option::is_none"
1389 )]
1390 pub gitlab_base_url: Option<String>,
1391 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1392 pub metadata: std::collections::HashMap<String, String>,
1393 #[serde(rename = "projectID", default, skip_serializing_if = "Option::is_none")]
1394 pub project_id: Option<String>,
1395 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1396 pub projects: Vec<String>,
1397 #[serde(
1398 rename = "secretToken",
1399 default,
1400 skip_serializing_if = "Option::is_none"
1401 )]
1402 pub secret_token: Option<IoK8sApiCoreV1SecretKeySelector>,
1403 #[serde(default, skip_serializing_if = "Option::is_none")]
1404 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
1405}
1406impl From<&IoArgoprojEventsV1alpha1GitlabEventSource>
1407 for IoArgoprojEventsV1alpha1GitlabEventSource
1408{
1409 fn from(value: &IoArgoprojEventsV1alpha1GitlabEventSource) -> Self {
1410 value.clone()
1411 }
1412}
1413#[derive(Clone, Debug, Deserialize, Serialize)]
1414pub struct IoArgoprojEventsV1alpha1HdfsEventSource {
1415 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1416 pub addresses: Vec<String>,
1417 #[serde(
1418 rename = "checkInterval",
1419 default,
1420 skip_serializing_if = "Option::is_none"
1421 )]
1422 pub check_interval: Option<String>,
1423 #[serde(default, skip_serializing_if = "Option::is_none")]
1424 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1425 #[doc = "HDFSUser is the user to access HDFS file system.\nIt is ignored if either ccache or keytab is used."]
1426 #[serde(rename = "hdfsUser", default, skip_serializing_if = "Option::is_none")]
1427 pub hdfs_user: Option<String>,
1428 #[doc = "KrbCCacheSecret is the secret selector for Kerberos ccache\nEither ccache or keytab can be set to use Kerberos."]
1429 #[serde(
1430 rename = "krbCCacheSecret",
1431 default,
1432 skip_serializing_if = "Option::is_none"
1433 )]
1434 pub krb_c_cache_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1435 #[doc = "KrbConfig is the configmap selector for Kerberos config as string\nIt must be set if either ccache or keytab is used."]
1436 #[serde(
1437 rename = "krbConfigConfigMap",
1438 default,
1439 skip_serializing_if = "Option::is_none"
1440 )]
1441 pub krb_config_config_map: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
1442 #[doc = "KrbKeytabSecret is the secret selector for Kerberos keytab\nEither ccache or keytab can be set to use Kerberos."]
1443 #[serde(
1444 rename = "krbKeytabSecret",
1445 default,
1446 skip_serializing_if = "Option::is_none"
1447 )]
1448 pub krb_keytab_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1449 #[doc = "KrbRealm is the Kerberos realm used with Kerberos keytab\nIt must be set if keytab is used."]
1450 #[serde(rename = "krbRealm", default, skip_serializing_if = "Option::is_none")]
1451 pub krb_realm: Option<String>,
1452 #[doc = "KrbServicePrincipalName is the principal name of Kerberos service\nIt must be set if either ccache or keytab is used."]
1453 #[serde(
1454 rename = "krbServicePrincipalName",
1455 default,
1456 skip_serializing_if = "Option::is_none"
1457 )]
1458 pub krb_service_principal_name: Option<String>,
1459 #[doc = "KrbUsername is the Kerberos username used with Kerberos keytab\nIt must be set if keytab is used."]
1460 #[serde(
1461 rename = "krbUsername",
1462 default,
1463 skip_serializing_if = "Option::is_none"
1464 )]
1465 pub krb_username: Option<String>,
1466 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1467 pub metadata: std::collections::HashMap<String, String>,
1468 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1469 pub type_: Option<String>,
1470 #[serde(
1471 rename = "watchPathConfig",
1472 default,
1473 skip_serializing_if = "Option::is_none"
1474 )]
1475 pub watch_path_config: Option<IoArgoprojEventsV1alpha1WatchPathConfig>,
1476}
1477impl From<&IoArgoprojEventsV1alpha1HdfsEventSource> for IoArgoprojEventsV1alpha1HdfsEventSource {
1478 fn from(value: &IoArgoprojEventsV1alpha1HdfsEventSource) -> Self {
1479 value.clone()
1480 }
1481}
1482#[derive(Clone, Debug, Deserialize, Serialize)]
1483pub struct IoArgoprojEventsV1alpha1HttpTrigger {
1484 #[serde(rename = "basicAuth", default, skip_serializing_if = "Option::is_none")]
1485 pub basic_auth: Option<IoArgoprojEventsV1alpha1BasicAuth>,
1486 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1487 pub headers: std::collections::HashMap<String, String>,
1488 #[serde(default, skip_serializing_if = "Option::is_none")]
1489 pub method: Option<String>,
1490 #[doc = "Parameters is the list of key-value extracted from event's payload that are applied to\nthe HTTP trigger resource."]
1491 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1492 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1493 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1494 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1495 #[serde(
1496 rename = "secureHeaders",
1497 default,
1498 skip_serializing_if = "Vec::is_empty"
1499 )]
1500 pub secure_headers: Vec<IoArgoprojEventsV1alpha1SecureHeader>,
1501 #[serde(default, skip_serializing_if = "Option::is_none")]
1502 pub timeout: Option<String>,
1503 #[serde(default, skip_serializing_if = "Option::is_none")]
1504 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1505 #[doc = "URL refers to the URL to send HTTP request to."]
1506 #[serde(default, skip_serializing_if = "Option::is_none")]
1507 pub url: Option<String>,
1508}
1509impl From<&IoArgoprojEventsV1alpha1HttpTrigger> for IoArgoprojEventsV1alpha1HttpTrigger {
1510 fn from(value: &IoArgoprojEventsV1alpha1HttpTrigger) -> Self {
1511 value.clone()
1512 }
1513}
1514#[derive(Clone, Debug, Deserialize, Serialize)]
1515pub struct IoArgoprojEventsV1alpha1Int64OrString {
1516 #[serde(rename = "int64Val", default, skip_serializing_if = "Option::is_none")]
1517 pub int64_val: Option<String>,
1518 #[serde(rename = "strVal", default, skip_serializing_if = "Option::is_none")]
1519 pub str_val: Option<String>,
1520 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1521 pub type_: Option<String>,
1522}
1523impl From<&IoArgoprojEventsV1alpha1Int64OrString> for IoArgoprojEventsV1alpha1Int64OrString {
1524 fn from(value: &IoArgoprojEventsV1alpha1Int64OrString) -> Self {
1525 value.clone()
1526 }
1527}
1528#[derive(Clone, Debug, Deserialize, Serialize)]
1529pub struct IoArgoprojEventsV1alpha1K8sResourcePolicy {
1530 #[serde(default, skip_serializing_if = "Option::is_none")]
1531 pub backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1532 #[serde(
1533 rename = "errorOnBackoffTimeout",
1534 default,
1535 skip_serializing_if = "Option::is_none"
1536 )]
1537 pub error_on_backoff_timeout: Option<bool>,
1538 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1539 pub labels: std::collections::HashMap<String, String>,
1540}
1541impl From<&IoArgoprojEventsV1alpha1K8sResourcePolicy>
1542 for IoArgoprojEventsV1alpha1K8sResourcePolicy
1543{
1544 fn from(value: &IoArgoprojEventsV1alpha1K8sResourcePolicy) -> Self {
1545 value.clone()
1546 }
1547}
1548#[derive(Clone, Debug, Deserialize, Serialize)]
1549pub struct IoArgoprojEventsV1alpha1KafkaConsumerGroup {
1550 #[serde(rename = "groupName", default, skip_serializing_if = "Option::is_none")]
1551 pub group_name: Option<String>,
1552 #[serde(default, skip_serializing_if = "Option::is_none")]
1553 pub oldest: Option<bool>,
1554 #[serde(
1555 rename = "rebalanceStrategy",
1556 default,
1557 skip_serializing_if = "Option::is_none"
1558 )]
1559 pub rebalance_strategy: Option<String>,
1560}
1561impl From<&IoArgoprojEventsV1alpha1KafkaConsumerGroup>
1562 for IoArgoprojEventsV1alpha1KafkaConsumerGroup
1563{
1564 fn from(value: &IoArgoprojEventsV1alpha1KafkaConsumerGroup) -> Self {
1565 value.clone()
1566 }
1567}
1568#[derive(Clone, Debug, Deserialize, Serialize)]
1569pub struct IoArgoprojEventsV1alpha1KafkaEventSource {
1570 #[doc = "Yaml format Sarama config for Kafka connection.\nIt follows the struct of sarama.Config. See https://github.com/Shopify/sarama/blob/main/config.go\ne.g.\n\nconsumer:\n fetch:\n min: 1\nnet:\n MaxOpenRequests: 5\n\n+optional"]
1571 #[serde(default, skip_serializing_if = "Option::is_none")]
1572 pub config: Option<String>,
1573 #[doc = "Backoff holds parameters applied to connection."]
1574 #[serde(
1575 rename = "connectionBackoff",
1576 default,
1577 skip_serializing_if = "Option::is_none"
1578 )]
1579 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1580 #[serde(
1581 rename = "consumerGroup",
1582 default,
1583 skip_serializing_if = "Option::is_none"
1584 )]
1585 pub consumer_group: Option<IoArgoprojEventsV1alpha1KafkaConsumerGroup>,
1586 #[serde(default, skip_serializing_if = "Option::is_none")]
1587 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1588 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1589 pub json_body: Option<bool>,
1590 #[serde(
1591 rename = "limitEventsPerSecond",
1592 default,
1593 skip_serializing_if = "Option::is_none"
1594 )]
1595 pub limit_events_per_second: Option<String>,
1596 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1597 pub metadata: std::collections::HashMap<String, String>,
1598 #[serde(default, skip_serializing_if = "Option::is_none")]
1599 pub partition: Option<String>,
1600 #[serde(default, skip_serializing_if = "Option::is_none")]
1601 pub sasl: Option<IoArgoprojEventsV1alpha1SaslConfig>,
1602 #[serde(default, skip_serializing_if = "Option::is_none")]
1603 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1604 #[serde(default, skip_serializing_if = "Option::is_none")]
1605 pub topic: Option<String>,
1606 #[serde(default, skip_serializing_if = "Option::is_none")]
1607 pub url: Option<String>,
1608 #[serde(default, skip_serializing_if = "Option::is_none")]
1609 pub version: Option<String>,
1610}
1611impl From<&IoArgoprojEventsV1alpha1KafkaEventSource> for IoArgoprojEventsV1alpha1KafkaEventSource {
1612 fn from(value: &IoArgoprojEventsV1alpha1KafkaEventSource) -> Self {
1613 value.clone()
1614 }
1615}
1616#[doc = "KafkaTrigger refers to the specification of the Kafka trigger."]
1617#[derive(Clone, Debug, Deserialize, Serialize)]
1618pub struct IoArgoprojEventsV1alpha1KafkaTrigger {
1619 #[serde(default, skip_serializing_if = "Option::is_none")]
1620 pub compress: Option<bool>,
1621 #[serde(
1622 rename = "flushFrequency",
1623 default,
1624 skip_serializing_if = "Option::is_none"
1625 )]
1626 pub flush_frequency: Option<i64>,
1627 #[doc = "Parameters is the list of parameters that is applied to resolved Kafka trigger object."]
1628 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1629 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1630 #[doc = "Partition to write data to."]
1631 #[serde(default, skip_serializing_if = "Option::is_none")]
1632 pub partition: Option<i64>,
1633 #[doc = "The partitioning key for the messages put on the Kafka topic.\nDefaults to broker url.\n+optional."]
1634 #[serde(
1635 rename = "partitioningKey",
1636 default,
1637 skip_serializing_if = "Option::is_none"
1638 )]
1639 pub partitioning_key: Option<String>,
1640 #[doc = "Payload is the list of key-value extracted from an event payload to construct the request payload."]
1641 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1642 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1643 #[doc = "RequiredAcks used in producer to tell the broker how many replica acknowledgements\nDefaults to 1 (Only wait for the leader to ack).\n+optional."]
1644 #[serde(
1645 rename = "requiredAcks",
1646 default,
1647 skip_serializing_if = "Option::is_none"
1648 )]
1649 pub required_acks: Option<i64>,
1650 #[serde(default, skip_serializing_if = "Option::is_none")]
1651 pub sasl: Option<IoArgoprojEventsV1alpha1SaslConfig>,
1652 #[serde(default, skip_serializing_if = "Option::is_none")]
1653 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1654 #[serde(default, skip_serializing_if = "Option::is_none")]
1655 pub topic: Option<String>,
1656 #[doc = "URL of the Kafka broker, multiple URLs separated by comma."]
1657 #[serde(default, skip_serializing_if = "Option::is_none")]
1658 pub url: Option<String>,
1659 #[serde(default, skip_serializing_if = "Option::is_none")]
1660 pub version: Option<String>,
1661}
1662impl From<&IoArgoprojEventsV1alpha1KafkaTrigger> for IoArgoprojEventsV1alpha1KafkaTrigger {
1663 fn from(value: &IoArgoprojEventsV1alpha1KafkaTrigger) -> Self {
1664 value.clone()
1665 }
1666}
1667#[derive(Clone, Debug, Deserialize, Serialize)]
1668pub struct IoArgoprojEventsV1alpha1LogTrigger {
1669 #[serde(
1670 rename = "intervalSeconds",
1671 default,
1672 skip_serializing_if = "Option::is_none"
1673 )]
1674 pub interval_seconds: Option<String>,
1675}
1676impl From<&IoArgoprojEventsV1alpha1LogTrigger> for IoArgoprojEventsV1alpha1LogTrigger {
1677 fn from(value: &IoArgoprojEventsV1alpha1LogTrigger) -> Self {
1678 value.clone()
1679 }
1680}
1681#[derive(Clone, Debug, Deserialize, Serialize)]
1682pub struct IoArgoprojEventsV1alpha1Metadata {
1683 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1684 pub annotations: std::collections::HashMap<String, String>,
1685 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1686 pub labels: std::collections::HashMap<String, String>,
1687}
1688impl From<&IoArgoprojEventsV1alpha1Metadata> for IoArgoprojEventsV1alpha1Metadata {
1689 fn from(value: &IoArgoprojEventsV1alpha1Metadata) -> Self {
1690 value.clone()
1691 }
1692}
1693#[derive(Clone, Debug, Deserialize, Serialize)]
1694pub struct IoArgoprojEventsV1alpha1MqttEventSource {
1695 #[serde(rename = "clientId", default, skip_serializing_if = "Option::is_none")]
1696 pub client_id: Option<String>,
1697 #[doc = "ConnectionBackoff holds backoff applied to connection."]
1698 #[serde(
1699 rename = "connectionBackoff",
1700 default,
1701 skip_serializing_if = "Option::is_none"
1702 )]
1703 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1704 #[serde(default, skip_serializing_if = "Option::is_none")]
1705 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1706 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1707 pub json_body: Option<bool>,
1708 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1709 pub metadata: std::collections::HashMap<String, String>,
1710 #[serde(default, skip_serializing_if = "Option::is_none")]
1711 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1712 #[serde(default, skip_serializing_if = "Option::is_none")]
1713 pub topic: Option<String>,
1714 #[serde(default, skip_serializing_if = "Option::is_none")]
1715 pub url: Option<String>,
1716}
1717impl From<&IoArgoprojEventsV1alpha1MqttEventSource> for IoArgoprojEventsV1alpha1MqttEventSource {
1718 fn from(value: &IoArgoprojEventsV1alpha1MqttEventSource) -> Self {
1719 value.clone()
1720 }
1721}
1722#[derive(Clone, Debug, Deserialize, Serialize)]
1723pub struct IoArgoprojEventsV1alpha1NatsAuth {
1724 #[serde(default, skip_serializing_if = "Option::is_none")]
1725 pub basic: Option<IoArgoprojEventsV1alpha1BasicAuth>,
1726 #[serde(default, skip_serializing_if = "Option::is_none")]
1727 pub credential: Option<IoK8sApiCoreV1SecretKeySelector>,
1728 #[serde(default, skip_serializing_if = "Option::is_none")]
1729 pub nkey: Option<IoK8sApiCoreV1SecretKeySelector>,
1730 #[serde(default, skip_serializing_if = "Option::is_none")]
1731 pub token: Option<IoK8sApiCoreV1SecretKeySelector>,
1732}
1733impl From<&IoArgoprojEventsV1alpha1NatsAuth> for IoArgoprojEventsV1alpha1NatsAuth {
1734 fn from(value: &IoArgoprojEventsV1alpha1NatsAuth) -> Self {
1735 value.clone()
1736 }
1737}
1738#[derive(Clone, Debug, Deserialize, Serialize)]
1739pub struct IoArgoprojEventsV1alpha1NatsEventsSource {
1740 #[serde(default, skip_serializing_if = "Option::is_none")]
1741 pub auth: Option<IoArgoprojEventsV1alpha1NatsAuth>,
1742 #[doc = "ConnectionBackoff holds backoff applied to connection."]
1743 #[serde(
1744 rename = "connectionBackoff",
1745 default,
1746 skip_serializing_if = "Option::is_none"
1747 )]
1748 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1749 #[serde(default, skip_serializing_if = "Option::is_none")]
1750 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1751 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1752 pub json_body: Option<bool>,
1753 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1754 pub metadata: std::collections::HashMap<String, String>,
1755 #[serde(default, skip_serializing_if = "Option::is_none")]
1756 pub subject: Option<String>,
1757 #[serde(default, skip_serializing_if = "Option::is_none")]
1758 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1759 #[serde(default, skip_serializing_if = "Option::is_none")]
1760 pub url: Option<String>,
1761}
1762impl From<&IoArgoprojEventsV1alpha1NatsEventsSource> for IoArgoprojEventsV1alpha1NatsEventsSource {
1763 fn from(value: &IoArgoprojEventsV1alpha1NatsEventsSource) -> Self {
1764 value.clone()
1765 }
1766}
1767#[doc = "NATSTrigger refers to the specification of the NATS trigger."]
1768#[derive(Clone, Debug, Deserialize, Serialize)]
1769pub struct IoArgoprojEventsV1alpha1NatsTrigger {
1770 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1771 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1772 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1773 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1774 #[doc = "Name of the subject to put message on."]
1775 #[serde(default, skip_serializing_if = "Option::is_none")]
1776 pub subject: Option<String>,
1777 #[serde(default, skip_serializing_if = "Option::is_none")]
1778 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1779 #[doc = "URL of the NATS cluster."]
1780 #[serde(default, skip_serializing_if = "Option::is_none")]
1781 pub url: Option<String>,
1782}
1783impl From<&IoArgoprojEventsV1alpha1NatsTrigger> for IoArgoprojEventsV1alpha1NatsTrigger {
1784 fn from(value: &IoArgoprojEventsV1alpha1NatsTrigger) -> Self {
1785 value.clone()
1786 }
1787}
1788#[derive(Clone, Debug, Deserialize, Serialize)]
1789pub struct IoArgoprojEventsV1alpha1NsqEventSource {
1790 #[serde(default, skip_serializing_if = "Option::is_none")]
1791 pub channel: Option<String>,
1792 #[serde(
1793 rename = "connectionBackoff",
1794 default,
1795 skip_serializing_if = "Option::is_none"
1796 )]
1797 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1798 #[serde(default, skip_serializing_if = "Option::is_none")]
1799 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1800 #[serde(
1801 rename = "hostAddress",
1802 default,
1803 skip_serializing_if = "Option::is_none"
1804 )]
1805 pub host_address: Option<String>,
1806 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1807 pub json_body: Option<bool>,
1808 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1809 pub metadata: std::collections::HashMap<String, String>,
1810 #[serde(default, skip_serializing_if = "Option::is_none")]
1811 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1812 #[doc = "Topic to subscribe to."]
1813 #[serde(default, skip_serializing_if = "Option::is_none")]
1814 pub topic: Option<String>,
1815}
1816impl From<&IoArgoprojEventsV1alpha1NsqEventSource> for IoArgoprojEventsV1alpha1NsqEventSource {
1817 fn from(value: &IoArgoprojEventsV1alpha1NsqEventSource) -> Self {
1818 value.clone()
1819 }
1820}
1821#[doc = "OpenWhiskTrigger refers to the specification of the OpenWhisk trigger."]
1822#[derive(Clone, Debug, Deserialize, Serialize)]
1823pub struct IoArgoprojEventsV1alpha1OpenWhiskTrigger {
1824 #[doc = "Name of the action/function."]
1825 #[serde(
1826 rename = "actionName",
1827 default,
1828 skip_serializing_if = "Option::is_none"
1829 )]
1830 pub action_name: Option<String>,
1831 #[serde(rename = "authToken", default, skip_serializing_if = "Option::is_none")]
1832 pub auth_token: Option<IoK8sApiCoreV1SecretKeySelector>,
1833 #[doc = "Host URL of the OpenWhisk."]
1834 #[serde(default, skip_serializing_if = "Option::is_none")]
1835 pub host: Option<String>,
1836 #[doc = "Namespace for the action.\nDefaults to \"_\".\n+optional."]
1837 #[serde(default, skip_serializing_if = "Option::is_none")]
1838 pub namespace: Option<String>,
1839 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1840 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1841 #[doc = "Payload is the list of key-value extracted from an event payload to construct the request payload."]
1842 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1843 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1844 #[serde(default, skip_serializing_if = "Option::is_none")]
1845 pub version: Option<String>,
1846}
1847impl From<&IoArgoprojEventsV1alpha1OpenWhiskTrigger> for IoArgoprojEventsV1alpha1OpenWhiskTrigger {
1848 fn from(value: &IoArgoprojEventsV1alpha1OpenWhiskTrigger) -> Self {
1849 value.clone()
1850 }
1851}
1852#[derive(Clone, Debug, Deserialize, Serialize)]
1853pub struct IoArgoprojEventsV1alpha1OwnedRepositories {
1854 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1855 pub names: Vec<String>,
1856 #[serde(default, skip_serializing_if = "Option::is_none")]
1857 pub owner: Option<String>,
1858}
1859impl From<&IoArgoprojEventsV1alpha1OwnedRepositories>
1860 for IoArgoprojEventsV1alpha1OwnedRepositories
1861{
1862 fn from(value: &IoArgoprojEventsV1alpha1OwnedRepositories) -> Self {
1863 value.clone()
1864 }
1865}
1866#[doc = "PayloadField binds a value at path within the event payload against a name."]
1867#[derive(Clone, Debug, Deserialize, Serialize)]
1868pub struct IoArgoprojEventsV1alpha1PayloadField {
1869 #[doc = "Name acts as key that holds the value at the path."]
1870 #[serde(default, skip_serializing_if = "Option::is_none")]
1871 pub name: Option<String>,
1872 #[doc = "Path is the JSONPath of the event's (JSON decoded) data key\nPath is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.\nTo access an array value use the index as the key. The dot and wildcard characters can be escaped with '\\\\'.\nSee https://github.com/tidwall/gjson#path-syntax for more information on how to use this."]
1873 #[serde(default, skip_serializing_if = "Option::is_none")]
1874 pub path: Option<String>,
1875}
1876impl From<&IoArgoprojEventsV1alpha1PayloadField> for IoArgoprojEventsV1alpha1PayloadField {
1877 fn from(value: &IoArgoprojEventsV1alpha1PayloadField) -> Self {
1878 value.clone()
1879 }
1880}
1881#[doc = "PubSubEventSource refers to event-source for GCP PubSub related events."]
1882#[derive(Clone, Debug, Deserialize, Serialize)]
1883pub struct IoArgoprojEventsV1alpha1PubSubEventSource {
1884 #[serde(
1885 rename = "credentialSecret",
1886 default,
1887 skip_serializing_if = "Option::is_none"
1888 )]
1889 pub credential_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1890 #[serde(
1891 rename = "deleteSubscriptionOnFinish",
1892 default,
1893 skip_serializing_if = "Option::is_none"
1894 )]
1895 pub delete_subscription_on_finish: Option<bool>,
1896 #[serde(default, skip_serializing_if = "Option::is_none")]
1897 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1898 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1899 pub json_body: Option<bool>,
1900 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1901 pub metadata: std::collections::HashMap<String, String>,
1902 #[serde(rename = "projectID", default, skip_serializing_if = "Option::is_none")]
1903 pub project_id: Option<String>,
1904 #[serde(
1905 rename = "subscriptionID",
1906 default,
1907 skip_serializing_if = "Option::is_none"
1908 )]
1909 pub subscription_id: Option<String>,
1910 #[serde(default, skip_serializing_if = "Option::is_none")]
1911 pub topic: Option<String>,
1912 #[serde(
1913 rename = "topicProjectID",
1914 default,
1915 skip_serializing_if = "Option::is_none"
1916 )]
1917 pub topic_project_id: Option<String>,
1918}
1919impl From<&IoArgoprojEventsV1alpha1PubSubEventSource>
1920 for IoArgoprojEventsV1alpha1PubSubEventSource
1921{
1922 fn from(value: &IoArgoprojEventsV1alpha1PubSubEventSource) -> Self {
1923 value.clone()
1924 }
1925}
1926#[derive(Clone, Debug, Deserialize, Serialize)]
1927pub struct IoArgoprojEventsV1alpha1PulsarEventSource {
1928 #[serde(
1929 rename = "authTokenSecret",
1930 default,
1931 skip_serializing_if = "Option::is_none"
1932 )]
1933 pub auth_token_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1934 #[serde(
1935 rename = "connectionBackoff",
1936 default,
1937 skip_serializing_if = "Option::is_none"
1938 )]
1939 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1940 #[serde(default, skip_serializing_if = "Option::is_none")]
1941 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
1942 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
1943 pub json_body: Option<bool>,
1944 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
1945 pub metadata: std::collections::HashMap<String, String>,
1946 #[serde(default, skip_serializing_if = "Option::is_none")]
1947 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
1948 #[serde(
1949 rename = "tlsAllowInsecureConnection",
1950 default,
1951 skip_serializing_if = "Option::is_none"
1952 )]
1953 pub tls_allow_insecure_connection: Option<bool>,
1954 #[serde(
1955 rename = "tlsTrustCertsSecret",
1956 default,
1957 skip_serializing_if = "Option::is_none"
1958 )]
1959 pub tls_trust_certs_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1960 #[serde(
1961 rename = "tlsValidateHostname",
1962 default,
1963 skip_serializing_if = "Option::is_none"
1964 )]
1965 pub tls_validate_hostname: Option<bool>,
1966 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1967 pub topics: Vec<String>,
1968 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1969 pub type_: Option<String>,
1970 #[serde(default, skip_serializing_if = "Option::is_none")]
1971 pub url: Option<String>,
1972}
1973impl From<&IoArgoprojEventsV1alpha1PulsarEventSource>
1974 for IoArgoprojEventsV1alpha1PulsarEventSource
1975{
1976 fn from(value: &IoArgoprojEventsV1alpha1PulsarEventSource) -> Self {
1977 value.clone()
1978 }
1979}
1980#[doc = "PulsarTrigger refers to the specification of the Pulsar trigger."]
1981#[derive(Clone, Debug, Deserialize, Serialize)]
1982pub struct IoArgoprojEventsV1alpha1PulsarTrigger {
1983 #[serde(
1984 rename = "authTokenSecret",
1985 default,
1986 skip_serializing_if = "Option::is_none"
1987 )]
1988 pub auth_token_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
1989 #[serde(
1990 rename = "connectionBackoff",
1991 default,
1992 skip_serializing_if = "Option::is_none"
1993 )]
1994 pub connection_backoff: Option<IoArgoprojEventsV1alpha1Backoff>,
1995 #[doc = "Parameters is the list of parameters that is applied to resolved Kafka trigger object."]
1996 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1997 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
1998 #[doc = "Payload is the list of key-value extracted from an event payload to construct the request payload."]
1999 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2000 pub payload: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
2001 #[serde(default, skip_serializing_if = "Option::is_none")]
2002 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
2003 #[serde(
2004 rename = "tlsAllowInsecureConnection",
2005 default,
2006 skip_serializing_if = "Option::is_none"
2007 )]
2008 pub tls_allow_insecure_connection: Option<bool>,
2009 #[serde(
2010 rename = "tlsTrustCertsSecret",
2011 default,
2012 skip_serializing_if = "Option::is_none"
2013 )]
2014 pub tls_trust_certs_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2015 #[serde(
2016 rename = "tlsValidateHostname",
2017 default,
2018 skip_serializing_if = "Option::is_none"
2019 )]
2020 pub tls_validate_hostname: Option<bool>,
2021 #[serde(default, skip_serializing_if = "Option::is_none")]
2022 pub topic: Option<String>,
2023 #[serde(default, skip_serializing_if = "Option::is_none")]
2024 pub url: Option<String>,
2025}
2026impl From<&IoArgoprojEventsV1alpha1PulsarTrigger> for IoArgoprojEventsV1alpha1PulsarTrigger {
2027 fn from(value: &IoArgoprojEventsV1alpha1PulsarTrigger) -> Self {
2028 value.clone()
2029 }
2030}
2031#[derive(Clone, Debug, Deserialize, Serialize)]
2032pub struct IoArgoprojEventsV1alpha1RateLimit {
2033 #[serde(
2034 rename = "requestsPerUnit",
2035 default,
2036 skip_serializing_if = "Option::is_none"
2037 )]
2038 pub requests_per_unit: Option<i64>,
2039 #[serde(default, skip_serializing_if = "Option::is_none")]
2040 pub unit: Option<String>,
2041}
2042impl From<&IoArgoprojEventsV1alpha1RateLimit> for IoArgoprojEventsV1alpha1RateLimit {
2043 fn from(value: &IoArgoprojEventsV1alpha1RateLimit) -> Self {
2044 value.clone()
2045 }
2046}
2047#[derive(Clone, Debug, Deserialize, Serialize)]
2048pub struct IoArgoprojEventsV1alpha1RedisEventSource {
2049 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2050 pub channels: Vec<String>,
2051 #[serde(default, skip_serializing_if = "Option::is_none")]
2052 pub db: Option<i64>,
2053 #[serde(default, skip_serializing_if = "Option::is_none")]
2054 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
2055 #[serde(
2056 rename = "hostAddress",
2057 default,
2058 skip_serializing_if = "Option::is_none"
2059 )]
2060 pub host_address: Option<String>,
2061 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
2062 pub json_body: Option<bool>,
2063 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2064 pub metadata: std::collections::HashMap<String, String>,
2065 #[serde(default, skip_serializing_if = "Option::is_none")]
2066 pub namespace: Option<String>,
2067 #[serde(default, skip_serializing_if = "Option::is_none")]
2068 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
2069 #[serde(default, skip_serializing_if = "Option::is_none")]
2070 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
2071 #[serde(default, skip_serializing_if = "Option::is_none")]
2072 pub username: Option<String>,
2073}
2074impl From<&IoArgoprojEventsV1alpha1RedisEventSource> for IoArgoprojEventsV1alpha1RedisEventSource {
2075 fn from(value: &IoArgoprojEventsV1alpha1RedisEventSource) -> Self {
2076 value.clone()
2077 }
2078}
2079#[derive(Clone, Debug, Deserialize, Serialize)]
2080pub struct IoArgoprojEventsV1alpha1RedisStreamEventSource {
2081 #[serde(
2082 rename = "consumerGroup",
2083 default,
2084 skip_serializing_if = "Option::is_none"
2085 )]
2086 pub consumer_group: Option<String>,
2087 #[serde(default, skip_serializing_if = "Option::is_none")]
2088 pub db: Option<i64>,
2089 #[serde(default, skip_serializing_if = "Option::is_none")]
2090 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
2091 #[serde(
2092 rename = "hostAddress",
2093 default,
2094 skip_serializing_if = "Option::is_none"
2095 )]
2096 pub host_address: Option<String>,
2097 #[serde(
2098 rename = "maxMsgCountPerRead",
2099 default,
2100 skip_serializing_if = "Option::is_none"
2101 )]
2102 pub max_msg_count_per_read: Option<i64>,
2103 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2104 pub metadata: std::collections::HashMap<String, String>,
2105 #[serde(default, skip_serializing_if = "Option::is_none")]
2106 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
2107 #[doc = "Streams to look for entries. XREADGROUP is used on all streams using a single consumer group."]
2108 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2109 pub streams: Vec<String>,
2110 #[serde(default, skip_serializing_if = "Option::is_none")]
2111 pub tls: Option<IoArgoprojEventsV1alpha1TlsConfig>,
2112 #[serde(default, skip_serializing_if = "Option::is_none")]
2113 pub username: Option<String>,
2114}
2115impl From<&IoArgoprojEventsV1alpha1RedisStreamEventSource>
2116 for IoArgoprojEventsV1alpha1RedisStreamEventSource
2117{
2118 fn from(value: &IoArgoprojEventsV1alpha1RedisStreamEventSource) -> Self {
2119 value.clone()
2120 }
2121}
2122#[doc = "Resource represent arbitrary structured data."]
2123#[derive(Clone, Debug, Deserialize, Serialize)]
2124pub struct IoArgoprojEventsV1alpha1Resource {
2125 #[serde(default, skip_serializing_if = "Option::is_none")]
2126 pub value: Option<String>,
2127}
2128impl From<&IoArgoprojEventsV1alpha1Resource> for IoArgoprojEventsV1alpha1Resource {
2129 fn from(value: &IoArgoprojEventsV1alpha1Resource) -> Self {
2130 value.clone()
2131 }
2132}
2133#[doc = "ResourceEventSource refers to a event-source for K8s resource related events."]
2134#[derive(Clone, Debug, Deserialize, Serialize)]
2135pub struct IoArgoprojEventsV1alpha1ResourceEventSource {
2136 #[doc = "EventTypes is the list of event type to watch.\nPossible values are - ADD, UPDATE and DELETE."]
2137 #[serde(rename = "eventTypes", default, skip_serializing_if = "Vec::is_empty")]
2138 pub event_types: Vec<String>,
2139 #[serde(default, skip_serializing_if = "Option::is_none")]
2140 pub filter: Option<IoArgoprojEventsV1alpha1ResourceFilter>,
2141 #[serde(
2142 rename = "groupVersionResource",
2143 default,
2144 skip_serializing_if = "Option::is_none"
2145 )]
2146 pub group_version_resource: Option<IoK8sApimachineryPkgApisMetaV1GroupVersionResource>,
2147 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2148 pub metadata: std::collections::HashMap<String, String>,
2149 #[serde(default, skip_serializing_if = "Option::is_none")]
2150 pub namespace: Option<String>,
2151}
2152impl From<&IoArgoprojEventsV1alpha1ResourceEventSource>
2153 for IoArgoprojEventsV1alpha1ResourceEventSource
2154{
2155 fn from(value: &IoArgoprojEventsV1alpha1ResourceEventSource) -> Self {
2156 value.clone()
2157 }
2158}
2159#[derive(Clone, Debug, Deserialize, Serialize)]
2160pub struct IoArgoprojEventsV1alpha1ResourceFilter {
2161 #[serde(
2162 rename = "afterStart",
2163 default,
2164 skip_serializing_if = "Option::is_none"
2165 )]
2166 pub after_start: Option<bool>,
2167 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
2168 pub created_by: Option<IoK8sApimachineryPkgApisMetaV1Time>,
2169 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2170 pub fields: Vec<IoArgoprojEventsV1alpha1Selector>,
2171 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2172 pub labels: Vec<IoArgoprojEventsV1alpha1Selector>,
2173 #[serde(default, skip_serializing_if = "Option::is_none")]
2174 pub prefix: Option<String>,
2175}
2176impl From<&IoArgoprojEventsV1alpha1ResourceFilter> for IoArgoprojEventsV1alpha1ResourceFilter {
2177 fn from(value: &IoArgoprojEventsV1alpha1ResourceFilter) -> Self {
2178 value.clone()
2179 }
2180}
2181#[derive(Clone, Debug, Deserialize, Serialize)]
2182pub struct IoArgoprojEventsV1alpha1S3Artifact {
2183 #[serde(rename = "accessKey", default, skip_serializing_if = "Option::is_none")]
2184 pub access_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2185 #[serde(default, skip_serializing_if = "Option::is_none")]
2186 pub bucket: Option<IoArgoprojEventsV1alpha1S3Bucket>,
2187 #[serde(default, skip_serializing_if = "Option::is_none")]
2188 pub endpoint: Option<String>,
2189 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2190 pub events: Vec<String>,
2191 #[serde(default, skip_serializing_if = "Option::is_none")]
2192 pub filter: Option<IoArgoprojEventsV1alpha1S3Filter>,
2193 #[serde(default, skip_serializing_if = "Option::is_none")]
2194 pub insecure: Option<bool>,
2195 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2196 pub metadata: std::collections::HashMap<String, String>,
2197 #[serde(default, skip_serializing_if = "Option::is_none")]
2198 pub region: Option<String>,
2199 #[serde(rename = "secretKey", default, skip_serializing_if = "Option::is_none")]
2200 pub secret_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2201}
2202impl From<&IoArgoprojEventsV1alpha1S3Artifact> for IoArgoprojEventsV1alpha1S3Artifact {
2203 fn from(value: &IoArgoprojEventsV1alpha1S3Artifact) -> Self {
2204 value.clone()
2205 }
2206}
2207#[derive(Clone, Debug, Deserialize, Serialize)]
2208pub struct IoArgoprojEventsV1alpha1S3Bucket {
2209 #[serde(default, skip_serializing_if = "Option::is_none")]
2210 pub key: Option<String>,
2211 #[serde(default, skip_serializing_if = "Option::is_none")]
2212 pub name: Option<String>,
2213}
2214impl From<&IoArgoprojEventsV1alpha1S3Bucket> for IoArgoprojEventsV1alpha1S3Bucket {
2215 fn from(value: &IoArgoprojEventsV1alpha1S3Bucket) -> Self {
2216 value.clone()
2217 }
2218}
2219#[derive(Clone, Debug, Deserialize, Serialize)]
2220pub struct IoArgoprojEventsV1alpha1S3Filter {
2221 #[serde(default, skip_serializing_if = "Option::is_none")]
2222 pub prefix: Option<String>,
2223 #[serde(default, skip_serializing_if = "Option::is_none")]
2224 pub suffix: Option<String>,
2225}
2226impl From<&IoArgoprojEventsV1alpha1S3Filter> for IoArgoprojEventsV1alpha1S3Filter {
2227 fn from(value: &IoArgoprojEventsV1alpha1S3Filter) -> Self {
2228 value.clone()
2229 }
2230}
2231#[derive(Clone, Debug, Deserialize, Serialize)]
2232pub struct IoArgoprojEventsV1alpha1SaslConfig {
2233 #[serde(default, skip_serializing_if = "Option::is_none")]
2234 pub mechanism: Option<String>,
2235 #[serde(default, skip_serializing_if = "Option::is_none")]
2236 pub password: Option<IoK8sApiCoreV1SecretKeySelector>,
2237 #[serde(default, skip_serializing_if = "Option::is_none")]
2238 pub user: Option<IoK8sApiCoreV1SecretKeySelector>,
2239}
2240impl From<&IoArgoprojEventsV1alpha1SaslConfig> for IoArgoprojEventsV1alpha1SaslConfig {
2241 fn from(value: &IoArgoprojEventsV1alpha1SaslConfig) -> Self {
2242 value.clone()
2243 }
2244}
2245#[derive(Clone, Debug, Deserialize, Serialize)]
2246pub struct IoArgoprojEventsV1alpha1SecureHeader {
2247 #[serde(default, skip_serializing_if = "Option::is_none")]
2248 pub name: Option<String>,
2249 #[serde(rename = "valueFrom", default, skip_serializing_if = "Option::is_none")]
2250 pub value_from: Option<IoArgoprojEventsV1alpha1ValueFromSource>,
2251}
2252impl From<&IoArgoprojEventsV1alpha1SecureHeader> for IoArgoprojEventsV1alpha1SecureHeader {
2253 fn from(value: &IoArgoprojEventsV1alpha1SecureHeader) -> Self {
2254 value.clone()
2255 }
2256}
2257#[doc = "Selector represents conditional operation to select K8s objects."]
2258#[derive(Clone, Debug, Deserialize, Serialize)]
2259pub struct IoArgoprojEventsV1alpha1Selector {
2260 #[serde(default, skip_serializing_if = "Option::is_none")]
2261 pub key: Option<String>,
2262 #[serde(default, skip_serializing_if = "Option::is_none")]
2263 pub operation: Option<String>,
2264 #[serde(default, skip_serializing_if = "Option::is_none")]
2265 pub value: Option<String>,
2266}
2267impl From<&IoArgoprojEventsV1alpha1Selector> for IoArgoprojEventsV1alpha1Selector {
2268 fn from(value: &IoArgoprojEventsV1alpha1Selector) -> Self {
2269 value.clone()
2270 }
2271}
2272#[derive(Clone, Debug, Deserialize, Serialize)]
2273pub struct IoArgoprojEventsV1alpha1Sensor {
2274 #[serde(default, skip_serializing_if = "Option::is_none")]
2275 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ObjectMeta>,
2276 #[serde(default, skip_serializing_if = "Option::is_none")]
2277 pub spec: Option<IoArgoprojEventsV1alpha1SensorSpec>,
2278 #[serde(default, skip_serializing_if = "Option::is_none")]
2279 pub status: Option<IoArgoprojEventsV1alpha1SensorStatus>,
2280}
2281impl From<&IoArgoprojEventsV1alpha1Sensor> for IoArgoprojEventsV1alpha1Sensor {
2282 fn from(value: &IoArgoprojEventsV1alpha1Sensor) -> Self {
2283 value.clone()
2284 }
2285}
2286#[derive(Clone, Debug, Deserialize, Serialize)]
2287pub struct IoArgoprojEventsV1alpha1SensorList {
2288 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2289 pub items: Vec<IoArgoprojEventsV1alpha1Sensor>,
2290 #[serde(default, skip_serializing_if = "Option::is_none")]
2291 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ListMeta>,
2292}
2293impl From<&IoArgoprojEventsV1alpha1SensorList> for IoArgoprojEventsV1alpha1SensorList {
2294 fn from(value: &IoArgoprojEventsV1alpha1SensorList) -> Self {
2295 value.clone()
2296 }
2297}
2298#[derive(Clone, Debug, Deserialize, Serialize)]
2299pub struct IoArgoprojEventsV1alpha1SensorSpec {
2300 #[doc = "Dependencies is a list of the events that this sensor is dependent on."]
2301 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2302 pub dependencies: Vec<IoArgoprojEventsV1alpha1EventDependency>,
2303 #[doc = "ErrorOnFailedRound if set to true, marks sensor state as `error` if the previous trigger round fails.\nOnce sensor state is set to `error`, no further triggers will be processed."]
2304 #[serde(
2305 rename = "errorOnFailedRound",
2306 default,
2307 skip_serializing_if = "Option::is_none"
2308 )]
2309 pub error_on_failed_round: Option<bool>,
2310 #[serde(
2311 rename = "eventBusName",
2312 default,
2313 skip_serializing_if = "Option::is_none"
2314 )]
2315 pub event_bus_name: Option<String>,
2316 #[serde(default, skip_serializing_if = "Option::is_none")]
2317 pub replicas: Option<i64>,
2318 #[serde(default, skip_serializing_if = "Option::is_none")]
2319 pub template: Option<IoArgoprojEventsV1alpha1Template>,
2320 #[doc = "Triggers is a list of the things that this sensor evokes. These are the outputs from this sensor."]
2321 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2322 pub triggers: Vec<IoArgoprojEventsV1alpha1Trigger>,
2323}
2324impl From<&IoArgoprojEventsV1alpha1SensorSpec> for IoArgoprojEventsV1alpha1SensorSpec {
2325 fn from(value: &IoArgoprojEventsV1alpha1SensorSpec) -> Self {
2326 value.clone()
2327 }
2328}
2329#[doc = "SensorStatus contains information about the status of a sensor."]
2330#[derive(Clone, Debug, Deserialize, Serialize)]
2331pub struct IoArgoprojEventsV1alpha1SensorStatus {
2332 #[serde(default, skip_serializing_if = "Option::is_none")]
2333 pub status: Option<IoArgoprojEventsV1alpha1Status>,
2334}
2335impl From<&IoArgoprojEventsV1alpha1SensorStatus> for IoArgoprojEventsV1alpha1SensorStatus {
2336 fn from(value: &IoArgoprojEventsV1alpha1SensorStatus) -> Self {
2337 value.clone()
2338 }
2339}
2340#[derive(Clone, Debug, Deserialize, Serialize)]
2341pub struct IoArgoprojEventsV1alpha1Service {
2342 #[serde(rename = "clusterIP", default, skip_serializing_if = "Option::is_none")]
2343 pub cluster_ip: Option<String>,
2344 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2345 pub ports: Vec<IoK8sApiCoreV1ServicePort>,
2346}
2347impl From<&IoArgoprojEventsV1alpha1Service> for IoArgoprojEventsV1alpha1Service {
2348 fn from(value: &IoArgoprojEventsV1alpha1Service) -> Self {
2349 value.clone()
2350 }
2351}
2352#[derive(Clone, Debug, Deserialize, Serialize)]
2353pub struct IoArgoprojEventsV1alpha1SlackEventSource {
2354 #[serde(default, skip_serializing_if = "Option::is_none")]
2355 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
2356 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2357 pub metadata: std::collections::HashMap<String, String>,
2358 #[serde(
2359 rename = "signingSecret",
2360 default,
2361 skip_serializing_if = "Option::is_none"
2362 )]
2363 pub signing_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2364 #[serde(default, skip_serializing_if = "Option::is_none")]
2365 pub token: Option<IoK8sApiCoreV1SecretKeySelector>,
2366 #[serde(default, skip_serializing_if = "Option::is_none")]
2367 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
2368}
2369impl From<&IoArgoprojEventsV1alpha1SlackEventSource> for IoArgoprojEventsV1alpha1SlackEventSource {
2370 fn from(value: &IoArgoprojEventsV1alpha1SlackEventSource) -> Self {
2371 value.clone()
2372 }
2373}
2374#[doc = "SlackTrigger refers to the specification of the slack notification trigger."]
2375#[derive(Clone, Debug, Deserialize, Serialize)]
2376pub struct IoArgoprojEventsV1alpha1SlackTrigger {
2377 #[serde(default, skip_serializing_if = "Option::is_none")]
2378 pub channel: Option<String>,
2379 #[serde(default, skip_serializing_if = "Option::is_none")]
2380 pub message: Option<String>,
2381 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2382 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
2383 #[doc = "SlackToken refers to the Kubernetes secret that holds the slack token required to send messages."]
2384 #[serde(
2385 rename = "slackToken",
2386 default,
2387 skip_serializing_if = "Option::is_none"
2388 )]
2389 pub slack_token: Option<IoK8sApiCoreV1SecretKeySelector>,
2390}
2391impl From<&IoArgoprojEventsV1alpha1SlackTrigger> for IoArgoprojEventsV1alpha1SlackTrigger {
2392 fn from(value: &IoArgoprojEventsV1alpha1SlackTrigger) -> Self {
2393 value.clone()
2394 }
2395}
2396#[derive(Clone, Debug, Deserialize, Serialize)]
2397pub struct IoArgoprojEventsV1alpha1SnsEventSource {
2398 #[serde(rename = "accessKey", default, skip_serializing_if = "Option::is_none")]
2399 pub access_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2400 #[serde(default, skip_serializing_if = "Option::is_none")]
2401 pub endpoint: Option<String>,
2402 #[serde(default, skip_serializing_if = "Option::is_none")]
2403 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
2404 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2405 pub metadata: std::collections::HashMap<String, String>,
2406 #[serde(default, skip_serializing_if = "Option::is_none")]
2407 pub region: Option<String>,
2408 #[serde(rename = "roleARN", default, skip_serializing_if = "Option::is_none")]
2409 pub role_arn: Option<String>,
2410 #[serde(rename = "secretKey", default, skip_serializing_if = "Option::is_none")]
2411 pub secret_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2412 #[serde(rename = "topicArn", default, skip_serializing_if = "Option::is_none")]
2413 pub topic_arn: Option<String>,
2414 #[serde(
2415 rename = "validateSignature",
2416 default,
2417 skip_serializing_if = "Option::is_none"
2418 )]
2419 pub validate_signature: Option<bool>,
2420 #[serde(default, skip_serializing_if = "Option::is_none")]
2421 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
2422}
2423impl From<&IoArgoprojEventsV1alpha1SnsEventSource> for IoArgoprojEventsV1alpha1SnsEventSource {
2424 fn from(value: &IoArgoprojEventsV1alpha1SnsEventSource) -> Self {
2425 value.clone()
2426 }
2427}
2428#[derive(Clone, Debug, Deserialize, Serialize)]
2429pub struct IoArgoprojEventsV1alpha1SqsEventSource {
2430 #[serde(rename = "accessKey", default, skip_serializing_if = "Option::is_none")]
2431 pub access_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2432 #[serde(default, skip_serializing_if = "Option::is_none")]
2433 pub dlq: Option<bool>,
2434 #[serde(default, skip_serializing_if = "Option::is_none")]
2435 pub endpoint: Option<String>,
2436 #[serde(default, skip_serializing_if = "Option::is_none")]
2437 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
2438 #[serde(rename = "jsonBody", default, skip_serializing_if = "Option::is_none")]
2439 pub json_body: Option<bool>,
2440 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2441 pub metadata: std::collections::HashMap<String, String>,
2442 #[serde(default, skip_serializing_if = "Option::is_none")]
2443 pub queue: Option<String>,
2444 #[serde(
2445 rename = "queueAccountId",
2446 default,
2447 skip_serializing_if = "Option::is_none"
2448 )]
2449 pub queue_account_id: Option<String>,
2450 #[serde(default, skip_serializing_if = "Option::is_none")]
2451 pub region: Option<String>,
2452 #[serde(rename = "roleARN", default, skip_serializing_if = "Option::is_none")]
2453 pub role_arn: Option<String>,
2454 #[serde(rename = "secretKey", default, skip_serializing_if = "Option::is_none")]
2455 pub secret_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2456 #[serde(
2457 rename = "sessionToken",
2458 default,
2459 skip_serializing_if = "Option::is_none"
2460 )]
2461 pub session_token: Option<IoK8sApiCoreV1SecretKeySelector>,
2462 #[doc = "WaitTimeSeconds is The duration (in seconds) for which the call waits for a message to arrive\nin the queue before returning."]
2463 #[serde(
2464 rename = "waitTimeSeconds",
2465 default,
2466 skip_serializing_if = "Option::is_none"
2467 )]
2468 pub wait_time_seconds: Option<String>,
2469}
2470impl From<&IoArgoprojEventsV1alpha1SqsEventSource> for IoArgoprojEventsV1alpha1SqsEventSource {
2471 fn from(value: &IoArgoprojEventsV1alpha1SqsEventSource) -> Self {
2472 value.clone()
2473 }
2474}
2475#[derive(Clone, Debug, Deserialize, Serialize)]
2476pub struct IoArgoprojEventsV1alpha1StandardK8sTrigger {
2477 #[serde(
2478 rename = "liveObject",
2479 default,
2480 skip_serializing_if = "Option::is_none"
2481 )]
2482 pub live_object: Option<bool>,
2483 #[serde(default, skip_serializing_if = "Option::is_none")]
2484 pub operation: Option<String>,
2485 #[doc = "Parameters is the list of parameters that is applied to resolved K8s trigger object."]
2486 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2487 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
2488 #[serde(
2489 rename = "patchStrategy",
2490 default,
2491 skip_serializing_if = "Option::is_none"
2492 )]
2493 pub patch_strategy: Option<String>,
2494 #[serde(default, skip_serializing_if = "Option::is_none")]
2495 pub source: Option<IoArgoprojEventsV1alpha1ArtifactLocation>,
2496}
2497impl From<&IoArgoprojEventsV1alpha1StandardK8sTrigger>
2498 for IoArgoprojEventsV1alpha1StandardK8sTrigger
2499{
2500 fn from(value: &IoArgoprojEventsV1alpha1StandardK8sTrigger) -> Self {
2501 value.clone()
2502 }
2503}
2504#[doc = "Status is a common structure which can be used for Status field."]
2505#[derive(Clone, Debug, Deserialize, Serialize)]
2506pub struct IoArgoprojEventsV1alpha1Status {
2507 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2508 pub conditions: Vec<IoArgoprojEventsV1alpha1Condition>,
2509}
2510impl From<&IoArgoprojEventsV1alpha1Status> for IoArgoprojEventsV1alpha1Status {
2511 fn from(value: &IoArgoprojEventsV1alpha1Status) -> Self {
2512 value.clone()
2513 }
2514}
2515#[derive(Clone, Debug, Deserialize, Serialize)]
2516pub struct IoArgoprojEventsV1alpha1StatusPolicy {
2517 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2518 pub allow: Vec<i32>,
2519}
2520impl From<&IoArgoprojEventsV1alpha1StatusPolicy> for IoArgoprojEventsV1alpha1StatusPolicy {
2521 fn from(value: &IoArgoprojEventsV1alpha1StatusPolicy) -> Self {
2522 value.clone()
2523 }
2524}
2525#[derive(Clone, Debug, Deserialize, Serialize)]
2526pub struct IoArgoprojEventsV1alpha1StorageGridEventSource {
2527 #[doc = "APIURL is the url of the storagegrid api."]
2528 #[serde(rename = "apiURL", default, skip_serializing_if = "Option::is_none")]
2529 pub api_url: Option<String>,
2530 #[serde(rename = "authToken", default, skip_serializing_if = "Option::is_none")]
2531 pub auth_token: Option<IoK8sApiCoreV1SecretKeySelector>,
2532 #[doc = "Name of the bucket to register notifications for."]
2533 #[serde(default, skip_serializing_if = "Option::is_none")]
2534 pub bucket: Option<String>,
2535 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2536 pub events: Vec<String>,
2537 #[doc = "Filter on object key which caused the notification."]
2538 #[serde(default, skip_serializing_if = "Option::is_none")]
2539 pub filter: Option<IoArgoprojEventsV1alpha1StorageGridFilter>,
2540 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2541 pub metadata: std::collections::HashMap<String, String>,
2542 #[serde(default, skip_serializing_if = "Option::is_none")]
2543 pub region: Option<String>,
2544 #[serde(rename = "topicArn", default, skip_serializing_if = "Option::is_none")]
2545 pub topic_arn: Option<String>,
2546 #[serde(default, skip_serializing_if = "Option::is_none")]
2547 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
2548}
2549impl From<&IoArgoprojEventsV1alpha1StorageGridEventSource>
2550 for IoArgoprojEventsV1alpha1StorageGridEventSource
2551{
2552 fn from(value: &IoArgoprojEventsV1alpha1StorageGridEventSource) -> Self {
2553 value.clone()
2554 }
2555}
2556#[derive(Clone, Debug, Deserialize, Serialize)]
2557pub struct IoArgoprojEventsV1alpha1StorageGridFilter {
2558 #[serde(default, skip_serializing_if = "Option::is_none")]
2559 pub prefix: Option<String>,
2560 #[serde(default, skip_serializing_if = "Option::is_none")]
2561 pub suffix: Option<String>,
2562}
2563impl From<&IoArgoprojEventsV1alpha1StorageGridFilter>
2564 for IoArgoprojEventsV1alpha1StorageGridFilter
2565{
2566 fn from(value: &IoArgoprojEventsV1alpha1StorageGridFilter) -> Self {
2567 value.clone()
2568 }
2569}
2570#[derive(Clone, Debug, Deserialize, Serialize)]
2571pub struct IoArgoprojEventsV1alpha1StripeEventSource {
2572 #[serde(rename = "apiKey", default, skip_serializing_if = "Option::is_none")]
2573 pub api_key: Option<IoK8sApiCoreV1SecretKeySelector>,
2574 #[serde(
2575 rename = "createWebhook",
2576 default,
2577 skip_serializing_if = "Option::is_none"
2578 )]
2579 pub create_webhook: Option<bool>,
2580 #[serde(rename = "eventFilter", default, skip_serializing_if = "Vec::is_empty")]
2581 pub event_filter: Vec<String>,
2582 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2583 pub metadata: std::collections::HashMap<String, String>,
2584 #[serde(default, skip_serializing_if = "Option::is_none")]
2585 pub webhook: Option<IoArgoprojEventsV1alpha1WebhookContext>,
2586}
2587impl From<&IoArgoprojEventsV1alpha1StripeEventSource>
2588 for IoArgoprojEventsV1alpha1StripeEventSource
2589{
2590 fn from(value: &IoArgoprojEventsV1alpha1StripeEventSource) -> Self {
2591 value.clone()
2592 }
2593}
2594#[derive(Clone, Debug, Deserialize, Serialize)]
2595pub struct IoArgoprojEventsV1alpha1Template {
2596 #[serde(default, skip_serializing_if = "Option::is_none")]
2597 pub affinity: Option<IoK8sApiCoreV1Affinity>,
2598 #[serde(default, skip_serializing_if = "Option::is_none")]
2599 pub container: Option<IoK8sApiCoreV1Container>,
2600 #[serde(
2601 rename = "imagePullSecrets",
2602 default,
2603 skip_serializing_if = "Vec::is_empty"
2604 )]
2605 pub image_pull_secrets: Vec<IoK8sApiCoreV1LocalObjectReference>,
2606 #[serde(default, skip_serializing_if = "Option::is_none")]
2607 pub metadata: Option<IoArgoprojEventsV1alpha1Metadata>,
2608 #[serde(
2609 rename = "nodeSelector",
2610 default,
2611 skip_serializing_if = "std::collections::HashMap::is_empty"
2612 )]
2613 pub node_selector: std::collections::HashMap<String, String>,
2614 #[serde(default, skip_serializing_if = "Option::is_none")]
2615 pub priority: Option<i64>,
2616 #[serde(
2617 rename = "priorityClassName",
2618 default,
2619 skip_serializing_if = "Option::is_none"
2620 )]
2621 pub priority_class_name: Option<String>,
2622 #[serde(
2623 rename = "securityContext",
2624 default,
2625 skip_serializing_if = "Option::is_none"
2626 )]
2627 pub security_context: Option<IoK8sApiCoreV1PodSecurityContext>,
2628 #[serde(
2629 rename = "serviceAccountName",
2630 default,
2631 skip_serializing_if = "Option::is_none"
2632 )]
2633 pub service_account_name: Option<String>,
2634 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2635 pub tolerations: Vec<IoK8sApiCoreV1Toleration>,
2636 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2637 pub volumes: Vec<IoK8sApiCoreV1Volume>,
2638}
2639impl From<&IoArgoprojEventsV1alpha1Template> for IoArgoprojEventsV1alpha1Template {
2640 fn from(value: &IoArgoprojEventsV1alpha1Template) -> Self {
2641 value.clone()
2642 }
2643}
2644#[doc = "TimeFilter describes a window in time.\nIt filters out events that occur outside the time limits.\nIn other words, only events that occur after Start and before Stop\nwill pass this filter."]
2645#[derive(Clone, Debug, Deserialize, Serialize)]
2646pub struct IoArgoprojEventsV1alpha1TimeFilter {
2647 #[doc = "Start is the beginning of a time window in UTC.\nBefore this time, events for this dependency are ignored.\nFormat is hh:mm:ss."]
2648 #[serde(default, skip_serializing_if = "Option::is_none")]
2649 pub start: Option<String>,
2650 #[doc = "Stop is the end of a time window in UTC.\nAfter or equal to this time, events for this dependency are ignored and\nFormat is hh:mm:ss.\nIf it is smaller than Start, it is treated as next day of Start\n(e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00)."]
2651 #[serde(default, skip_serializing_if = "Option::is_none")]
2652 pub stop: Option<String>,
2653}
2654impl From<&IoArgoprojEventsV1alpha1TimeFilter> for IoArgoprojEventsV1alpha1TimeFilter {
2655 fn from(value: &IoArgoprojEventsV1alpha1TimeFilter) -> Self {
2656 value.clone()
2657 }
2658}
2659#[doc = "TLSConfig refers to TLS configuration for a client."]
2660#[derive(Clone, Debug, Deserialize, Serialize)]
2661pub struct IoArgoprojEventsV1alpha1TlsConfig {
2662 #[serde(
2663 rename = "caCertSecret",
2664 default,
2665 skip_serializing_if = "Option::is_none"
2666 )]
2667 pub ca_cert_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2668 #[serde(
2669 rename = "clientCertSecret",
2670 default,
2671 skip_serializing_if = "Option::is_none"
2672 )]
2673 pub client_cert_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2674 #[serde(
2675 rename = "clientKeySecret",
2676 default,
2677 skip_serializing_if = "Option::is_none"
2678 )]
2679 pub client_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2680 #[serde(
2681 rename = "insecureSkipVerify",
2682 default,
2683 skip_serializing_if = "Option::is_none"
2684 )]
2685 pub insecure_skip_verify: Option<bool>,
2686}
2687impl From<&IoArgoprojEventsV1alpha1TlsConfig> for IoArgoprojEventsV1alpha1TlsConfig {
2688 fn from(value: &IoArgoprojEventsV1alpha1TlsConfig) -> Self {
2689 value.clone()
2690 }
2691}
2692#[derive(Clone, Debug, Deserialize, Serialize)]
2693pub struct IoArgoprojEventsV1alpha1Trigger {
2694 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2695 pub parameters: Vec<IoArgoprojEventsV1alpha1TriggerParameter>,
2696 #[serde(default, skip_serializing_if = "Option::is_none")]
2697 pub policy: Option<IoArgoprojEventsV1alpha1TriggerPolicy>,
2698 #[serde(rename = "rateLimit", default, skip_serializing_if = "Option::is_none")]
2699 pub rate_limit: Option<IoArgoprojEventsV1alpha1RateLimit>,
2700 #[serde(
2701 rename = "retryStrategy",
2702 default,
2703 skip_serializing_if = "Option::is_none"
2704 )]
2705 pub retry_strategy: Option<IoArgoprojEventsV1alpha1Backoff>,
2706 #[doc = "Template describes the trigger specification."]
2707 #[serde(default, skip_serializing_if = "Option::is_none")]
2708 pub template: Option<IoArgoprojEventsV1alpha1TriggerTemplate>,
2709}
2710impl From<&IoArgoprojEventsV1alpha1Trigger> for IoArgoprojEventsV1alpha1Trigger {
2711 fn from(value: &IoArgoprojEventsV1alpha1Trigger) -> Self {
2712 value.clone()
2713 }
2714}
2715#[derive(Clone, Debug, Deserialize, Serialize)]
2716pub struct IoArgoprojEventsV1alpha1TriggerParameter {
2717 #[doc = "Dest is the JSONPath of a resource key.\nA path is a series of keys separated by a dot. The colon character can be escaped with '.'\nThe -1 key can be used to append a value to an existing array.\nSee https://github.com/tidwall/sjson#path-syntax for more information about how this is used."]
2718 #[serde(default, skip_serializing_if = "Option::is_none")]
2719 pub dest: Option<String>,
2720 #[doc = "Operation is what to do with the existing value at Dest, whether to\n'prepend', 'overwrite', or 'append' it."]
2721 #[serde(default, skip_serializing_if = "Option::is_none")]
2722 pub operation: Option<String>,
2723 #[serde(default, skip_serializing_if = "Option::is_none")]
2724 pub src: Option<IoArgoprojEventsV1alpha1TriggerParameterSource>,
2725}
2726impl From<&IoArgoprojEventsV1alpha1TriggerParameter> for IoArgoprojEventsV1alpha1TriggerParameter {
2727 fn from(value: &IoArgoprojEventsV1alpha1TriggerParameter) -> Self {
2728 value.clone()
2729 }
2730}
2731#[derive(Clone, Debug, Deserialize, Serialize)]
2732pub struct IoArgoprojEventsV1alpha1TriggerParameterSource {
2733 #[doc = "ContextKey is the JSONPath of the event's (JSON decoded) context key\nContextKey is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.\nTo access an array value use the index as the key. The dot and wildcard characters can be escaped with '\\\\'.\nSee https://github.com/tidwall/gjson#path-syntax for more information on how to use this."]
2734 #[serde(
2735 rename = "contextKey",
2736 default,
2737 skip_serializing_if = "Option::is_none"
2738 )]
2739 pub context_key: Option<String>,
2740 #[serde(
2741 rename = "contextTemplate",
2742 default,
2743 skip_serializing_if = "Option::is_none"
2744 )]
2745 pub context_template: Option<String>,
2746 #[doc = "DataKey is the JSONPath of the event's (JSON decoded) data key\nDataKey is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.\nTo access an array value use the index as the key. The dot and wildcard characters can be escaped with '\\\\'.\nSee https://github.com/tidwall/gjson#path-syntax for more information on how to use this."]
2747 #[serde(rename = "dataKey", default, skip_serializing_if = "Option::is_none")]
2748 pub data_key: Option<String>,
2749 #[serde(
2750 rename = "dataTemplate",
2751 default,
2752 skip_serializing_if = "Option::is_none"
2753 )]
2754 pub data_template: Option<String>,
2755 #[doc = "DependencyName refers to the name of the dependency. The event which is stored for this dependency is used as payload\nfor the parameterization. Make sure to refer to one of the dependencies you have defined under Dependencies list."]
2756 #[serde(
2757 rename = "dependencyName",
2758 default,
2759 skip_serializing_if = "Option::is_none"
2760 )]
2761 pub dependency_name: Option<String>,
2762 #[doc = "Value is the default literal value to use for this parameter source\nThis is only used if the DataKey is invalid.\nIf the DataKey is invalid and this is not defined, this param source will produce an error."]
2763 #[serde(default, skip_serializing_if = "Option::is_none")]
2764 pub value: Option<String>,
2765}
2766impl From<&IoArgoprojEventsV1alpha1TriggerParameterSource>
2767 for IoArgoprojEventsV1alpha1TriggerParameterSource
2768{
2769 fn from(value: &IoArgoprojEventsV1alpha1TriggerParameterSource) -> Self {
2770 value.clone()
2771 }
2772}
2773#[derive(Clone, Debug, Deserialize, Serialize)]
2774pub struct IoArgoprojEventsV1alpha1TriggerPolicy {
2775 #[serde(default, skip_serializing_if = "Option::is_none")]
2776 pub k8s: Option<IoArgoprojEventsV1alpha1K8sResourcePolicy>,
2777 #[serde(default, skip_serializing_if = "Option::is_none")]
2778 pub status: Option<IoArgoprojEventsV1alpha1StatusPolicy>,
2779}
2780impl From<&IoArgoprojEventsV1alpha1TriggerPolicy> for IoArgoprojEventsV1alpha1TriggerPolicy {
2781 fn from(value: &IoArgoprojEventsV1alpha1TriggerPolicy) -> Self {
2782 value.clone()
2783 }
2784}
2785#[doc = "TriggerTemplate is the template that describes trigger specification."]
2786#[derive(Clone, Debug, Deserialize, Serialize)]
2787pub struct IoArgoprojEventsV1alpha1TriggerTemplate {
2788 #[serde(
2789 rename = "argoWorkflow",
2790 default,
2791 skip_serializing_if = "Option::is_none"
2792 )]
2793 pub argo_workflow: Option<IoArgoprojEventsV1alpha1ArgoWorkflowTrigger>,
2794 #[serde(rename = "awsLambda", default, skip_serializing_if = "Option::is_none")]
2795 pub aws_lambda: Option<IoArgoprojEventsV1alpha1AwsLambdaTrigger>,
2796 #[serde(
2797 rename = "azureEventHubs",
2798 default,
2799 skip_serializing_if = "Option::is_none"
2800 )]
2801 pub azure_event_hubs: Option<IoArgoprojEventsV1alpha1AzureEventHubsTrigger>,
2802 #[serde(default, skip_serializing_if = "Option::is_none")]
2803 pub conditions: Option<String>,
2804 #[serde(
2805 rename = "conditionsReset",
2806 default,
2807 skip_serializing_if = "Vec::is_empty"
2808 )]
2809 pub conditions_reset: Vec<IoArgoprojEventsV1alpha1ConditionsResetCriteria>,
2810 #[serde(default, skip_serializing_if = "Option::is_none")]
2811 pub custom: Option<IoArgoprojEventsV1alpha1CustomTrigger>,
2812 #[serde(default, skip_serializing_if = "Option::is_none")]
2813 pub http: Option<IoArgoprojEventsV1alpha1HttpTrigger>,
2814 #[serde(default, skip_serializing_if = "Option::is_none")]
2815 pub k8s: Option<IoArgoprojEventsV1alpha1StandardK8sTrigger>,
2816 #[doc = "Kafka refers to the trigger designed to place messages on Kafka topic.\n+optional."]
2817 #[serde(default, skip_serializing_if = "Option::is_none")]
2818 pub kafka: Option<IoArgoprojEventsV1alpha1KafkaTrigger>,
2819 #[serde(default, skip_serializing_if = "Option::is_none")]
2820 pub log: Option<IoArgoprojEventsV1alpha1LogTrigger>,
2821 #[doc = "Name is a unique name of the action to take."]
2822 #[serde(default, skip_serializing_if = "Option::is_none")]
2823 pub name: Option<String>,
2824 #[doc = "NATS refers to the trigger designed to place message on NATS subject.\n+optional."]
2825 #[serde(default, skip_serializing_if = "Option::is_none")]
2826 pub nats: Option<IoArgoprojEventsV1alpha1NatsTrigger>,
2827 #[serde(rename = "openWhisk", default, skip_serializing_if = "Option::is_none")]
2828 pub open_whisk: Option<IoArgoprojEventsV1alpha1OpenWhiskTrigger>,
2829 #[serde(default, skip_serializing_if = "Option::is_none")]
2830 pub pulsar: Option<IoArgoprojEventsV1alpha1PulsarTrigger>,
2831 #[serde(default, skip_serializing_if = "Option::is_none")]
2832 pub slack: Option<IoArgoprojEventsV1alpha1SlackTrigger>,
2833}
2834impl From<&IoArgoprojEventsV1alpha1TriggerTemplate> for IoArgoprojEventsV1alpha1TriggerTemplate {
2835 fn from(value: &IoArgoprojEventsV1alpha1TriggerTemplate) -> Self {
2836 value.clone()
2837 }
2838}
2839#[doc = "URLArtifact contains information about an artifact at an http endpoint."]
2840#[derive(Clone, Debug, Deserialize, Serialize)]
2841pub struct IoArgoprojEventsV1alpha1UrlArtifact {
2842 #[serde(default, skip_serializing_if = "Option::is_none")]
2843 pub path: Option<String>,
2844 #[serde(
2845 rename = "verifyCert",
2846 default,
2847 skip_serializing_if = "Option::is_none"
2848 )]
2849 pub verify_cert: Option<bool>,
2850}
2851impl From<&IoArgoprojEventsV1alpha1UrlArtifact> for IoArgoprojEventsV1alpha1UrlArtifact {
2852 fn from(value: &IoArgoprojEventsV1alpha1UrlArtifact) -> Self {
2853 value.clone()
2854 }
2855}
2856#[derive(Clone, Debug, Deserialize, Serialize)]
2857pub struct IoArgoprojEventsV1alpha1ValueFromSource {
2858 #[serde(
2859 rename = "configMapKeyRef",
2860 default,
2861 skip_serializing_if = "Option::is_none"
2862 )]
2863 pub config_map_key_ref: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
2864 #[serde(
2865 rename = "secretKeyRef",
2866 default,
2867 skip_serializing_if = "Option::is_none"
2868 )]
2869 pub secret_key_ref: Option<IoK8sApiCoreV1SecretKeySelector>,
2870}
2871impl From<&IoArgoprojEventsV1alpha1ValueFromSource> for IoArgoprojEventsV1alpha1ValueFromSource {
2872 fn from(value: &IoArgoprojEventsV1alpha1ValueFromSource) -> Self {
2873 value.clone()
2874 }
2875}
2876#[derive(Clone, Debug, Deserialize, Serialize)]
2877pub struct IoArgoprojEventsV1alpha1WatchPathConfig {
2878 #[serde(default, skip_serializing_if = "Option::is_none")]
2879 pub directory: Option<String>,
2880 #[serde(default, skip_serializing_if = "Option::is_none")]
2881 pub path: Option<String>,
2882 #[serde(
2883 rename = "pathRegexp",
2884 default,
2885 skip_serializing_if = "Option::is_none"
2886 )]
2887 pub path_regexp: Option<String>,
2888}
2889impl From<&IoArgoprojEventsV1alpha1WatchPathConfig> for IoArgoprojEventsV1alpha1WatchPathConfig {
2890 fn from(value: &IoArgoprojEventsV1alpha1WatchPathConfig) -> Self {
2891 value.clone()
2892 }
2893}
2894#[derive(Clone, Debug, Deserialize, Serialize)]
2895pub struct IoArgoprojEventsV1alpha1WebhookContext {
2896 #[serde(
2897 rename = "authSecret",
2898 default,
2899 skip_serializing_if = "Option::is_none"
2900 )]
2901 pub auth_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2902 #[serde(default, skip_serializing_if = "Option::is_none")]
2903 pub endpoint: Option<String>,
2904 #[serde(
2905 rename = "maxPayloadSize",
2906 default,
2907 skip_serializing_if = "Option::is_none"
2908 )]
2909 pub max_payload_size: Option<String>,
2910 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
2911 pub metadata: std::collections::HashMap<String, String>,
2912 #[serde(default, skip_serializing_if = "Option::is_none")]
2913 pub method: Option<String>,
2914 #[doc = "Port on which HTTP server is listening for incoming events."]
2915 #[serde(default, skip_serializing_if = "Option::is_none")]
2916 pub port: Option<String>,
2917 #[doc = "ServerCertPath refers the file that contains the cert."]
2918 #[serde(
2919 rename = "serverCertSecret",
2920 default,
2921 skip_serializing_if = "Option::is_none"
2922 )]
2923 pub server_cert_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2924 #[serde(
2925 rename = "serverKeySecret",
2926 default,
2927 skip_serializing_if = "Option::is_none"
2928 )]
2929 pub server_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
2930 #[doc = "URL is the url of the server."]
2931 #[serde(default, skip_serializing_if = "Option::is_none")]
2932 pub url: Option<String>,
2933}
2934impl From<&IoArgoprojEventsV1alpha1WebhookContext> for IoArgoprojEventsV1alpha1WebhookContext {
2935 fn from(value: &IoArgoprojEventsV1alpha1WebhookContext) -> Self {
2936 value.clone()
2937 }
2938}
2939#[derive(Clone, Debug, Deserialize, Serialize)]
2940pub struct IoArgoprojEventsV1alpha1WebhookEventSource {
2941 #[serde(default, skip_serializing_if = "Option::is_none")]
2942 pub filter: Option<IoArgoprojEventsV1alpha1EventSourceFilter>,
2943 #[serde(
2944 rename = "webhookContext",
2945 default,
2946 skip_serializing_if = "Option::is_none"
2947 )]
2948 pub webhook_context: Option<IoArgoprojEventsV1alpha1WebhookContext>,
2949}
2950impl From<&IoArgoprojEventsV1alpha1WebhookEventSource>
2951 for IoArgoprojEventsV1alpha1WebhookEventSource
2952{
2953 fn from(value: &IoArgoprojEventsV1alpha1WebhookEventSource) -> Self {
2954 value.clone()
2955 }
2956}
2957#[derive(Clone, Debug, Deserialize, Serialize)]
2958pub struct IoArgoprojWorkflowV1alpha1Amount(pub f64);
2959impl std::ops::Deref for IoArgoprojWorkflowV1alpha1Amount {
2960 type Target = f64;
2961 fn deref(&self) -> &f64 {
2962 &self.0
2963 }
2964}
2965impl From<IoArgoprojWorkflowV1alpha1Amount> for f64 {
2966 fn from(value: IoArgoprojWorkflowV1alpha1Amount) -> Self {
2967 value.0
2968 }
2969}
2970impl From<&IoArgoprojWorkflowV1alpha1Amount> for IoArgoprojWorkflowV1alpha1Amount {
2971 fn from(value: &IoArgoprojWorkflowV1alpha1Amount) -> Self {
2972 value.clone()
2973 }
2974}
2975impl From<f64> for IoArgoprojWorkflowV1alpha1Amount {
2976 fn from(value: f64) -> Self {
2977 Self(value)
2978 }
2979}
2980impl std::str::FromStr for IoArgoprojWorkflowV1alpha1Amount {
2981 type Err = <f64 as std::str::FromStr>::Err;
2982 fn from_str(value: &str) -> Result<Self, Self::Err> {
2983 Ok(Self(value.parse()?))
2984 }
2985}
2986impl std::convert::TryFrom<&str> for IoArgoprojWorkflowV1alpha1Amount {
2987 type Error = <f64 as std::str::FromStr>::Err;
2988 fn try_from(value: &str) -> Result<Self, Self::Error> {
2989 value.parse()
2990 }
2991}
2992impl std::convert::TryFrom<&String> for IoArgoprojWorkflowV1alpha1Amount {
2993 type Error = <f64 as std::str::FromStr>::Err;
2994 fn try_from(value: &String) -> Result<Self, Self::Error> {
2995 value.parse()
2996 }
2997}
2998impl std::convert::TryFrom<String> for IoArgoprojWorkflowV1alpha1Amount {
2999 type Error = <f64 as std::str::FromStr>::Err;
3000 fn try_from(value: String) -> Result<Self, Self::Error> {
3001 value.parse()
3002 }
3003}
3004impl ToString for IoArgoprojWorkflowV1alpha1Amount {
3005 fn to_string(&self) -> String {
3006 self.0.to_string()
3007 }
3008}
3009#[doc = "ArchiveStrategy describes how to archive files/directory when saving artifacts"]
3010#[derive(Clone, Debug, Deserialize, Serialize)]
3011pub struct IoArgoprojWorkflowV1alpha1ArchiveStrategy {
3012 #[serde(default, skip_serializing_if = "Option::is_none")]
3013 pub none: Option<IoArgoprojWorkflowV1alpha1NoneStrategy>,
3014 #[serde(default, skip_serializing_if = "Option::is_none")]
3015 pub tar: Option<IoArgoprojWorkflowV1alpha1TarStrategy>,
3016 #[serde(default, skip_serializing_if = "Option::is_none")]
3017 pub zip: Option<IoArgoprojWorkflowV1alpha1ZipStrategy>,
3018}
3019impl From<&IoArgoprojWorkflowV1alpha1ArchiveStrategy>
3020 for IoArgoprojWorkflowV1alpha1ArchiveStrategy
3021{
3022 fn from(value: &IoArgoprojWorkflowV1alpha1ArchiveStrategy) -> Self {
3023 value.clone()
3024 }
3025}
3026#[derive(Clone, Debug, Deserialize, Serialize)]
3027pub struct IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse(
3028 pub serde_json::Map<String, serde_json::Value>,
3029);
3030impl std::ops::Deref for IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse {
3031 type Target = serde_json::Map<String, serde_json::Value>;
3032 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
3033 &self.0
3034 }
3035}
3036impl From<IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse>
3037 for serde_json::Map<String, serde_json::Value>
3038{
3039 fn from(value: IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse) -> Self {
3040 value.0
3041 }
3042}
3043impl From<&IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse>
3044 for IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse
3045{
3046 fn from(value: &IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse) -> Self {
3047 value.clone()
3048 }
3049}
3050impl From<serde_json::Map<String, serde_json::Value>>
3051 for IoArgoprojWorkflowV1alpha1ArchivedWorkflowDeletedResponse
3052{
3053 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
3054 Self(value)
3055 }
3056}
3057
3058pub use IoArgoprojWorkflowV1alpha1ArgumentsBuilder as ArgumentsBuilder;
3059pub use IoArgoprojWorkflowV1alpha1ArgumentsBuilderError as ArgumentsBuilderError;
3060
3061#[doc = "Arguments to a template"]
3062#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
3063pub struct IoArgoprojWorkflowV1alpha1Arguments {
3064 #[builder(default)]
3065 #[doc = "Artifacts is the list of artifacts to pass to the template or workflow"]
3066 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3067 pub artifacts: Vec<IoArgoprojWorkflowV1alpha1Artifact>,
3068 #[doc = "Parameters is the list of parameters to pass to the template or workflow"]
3069 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3070 pub parameters: Vec<IoArgoprojWorkflowV1alpha1Parameter>,
3071}
3072impl From<&IoArgoprojWorkflowV1alpha1Arguments> for IoArgoprojWorkflowV1alpha1Arguments {
3073 fn from(value: &IoArgoprojWorkflowV1alpha1Arguments) -> Self {
3074 value.clone()
3075 }
3076}
3077#[doc = "ArtGCStatus maintains state related to ArtifactGC"]
3078#[derive(Clone, Debug, Deserialize, Serialize)]
3079pub struct IoArgoprojWorkflowV1alpha1ArtGcStatus {
3080 #[doc = "if this is true, we already checked to see if we need to do it and we don't"]
3081 #[serde(
3082 rename = "notSpecified",
3083 default,
3084 skip_serializing_if = "Option::is_none"
3085 )]
3086 pub not_specified: Option<bool>,
3087 #[doc = "have completed Pods been processed? (mapped by Pod name) used to prevent re-processing the Status of a Pod more than once"]
3088 #[serde(
3089 rename = "podsRecouped",
3090 default,
3091 skip_serializing_if = "std::collections::HashMap::is_empty"
3092 )]
3093 pub pods_recouped: std::collections::HashMap<String, bool>,
3094 #[doc = "have Pods been started to perform this strategy? (enables us not to re-process what we've already done)"]
3095 #[serde(
3096 rename = "strategiesProcessed",
3097 default,
3098 skip_serializing_if = "std::collections::HashMap::is_empty"
3099 )]
3100 pub strategies_processed: std::collections::HashMap<String, bool>,
3101}
3102impl From<&IoArgoprojWorkflowV1alpha1ArtGcStatus> for IoArgoprojWorkflowV1alpha1ArtGcStatus {
3103 fn from(value: &IoArgoprojWorkflowV1alpha1ArtGcStatus) -> Self {
3104 value.clone()
3105 }
3106}
3107#[doc = "Artifact indicates an artifact to place at a specified path"]
3108#[derive(Clone, Debug, Deserialize, Serialize)]
3109pub struct IoArgoprojWorkflowV1alpha1Artifact {
3110 #[doc = "Archive controls how the artifact will be saved to the artifact repository."]
3111 #[serde(default, skip_serializing_if = "Option::is_none")]
3112 pub archive: Option<IoArgoprojWorkflowV1alpha1ArchiveStrategy>,
3113 #[doc = "ArchiveLogs indicates if the container logs should be archived"]
3114 #[serde(
3115 rename = "archiveLogs",
3116 default,
3117 skip_serializing_if = "Option::is_none"
3118 )]
3119 pub archive_logs: Option<bool>,
3120 #[doc = "ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows"]
3121 #[serde(
3122 rename = "artifactGC",
3123 default,
3124 skip_serializing_if = "Option::is_none"
3125 )]
3126 pub artifact_gc: Option<IoArgoprojWorkflowV1alpha1ArtifactGc>,
3127 #[doc = "Artifactory contains artifactory artifact location details"]
3128 #[serde(default, skip_serializing_if = "Option::is_none")]
3129 pub artifactory: Option<IoArgoprojWorkflowV1alpha1ArtifactoryArtifact>,
3130 #[doc = "Azure contains Azure Storage artifact location details"]
3131 #[serde(default, skip_serializing_if = "Option::is_none")]
3132 pub azure: Option<IoArgoprojWorkflowV1alpha1AzureArtifact>,
3133 #[doc = "Has this been deleted?"]
3134 #[serde(default, skip_serializing_if = "Option::is_none")]
3135 pub deleted: Option<bool>,
3136 #[doc = "From allows an artifact to reference an artifact from a previous step"]
3137 #[serde(default, skip_serializing_if = "Option::is_none")]
3138 pub from: Option<String>,
3139 #[doc = "FromExpression, if defined, is evaluated to specify the value for the artifact"]
3140 #[serde(
3141 rename = "fromExpression",
3142 default,
3143 skip_serializing_if = "Option::is_none"
3144 )]
3145 pub from_expression: Option<String>,
3146 #[doc = "GCS contains GCS artifact location details"]
3147 #[serde(default, skip_serializing_if = "Option::is_none")]
3148 pub gcs: Option<IoArgoprojWorkflowV1alpha1GcsArtifact>,
3149 #[doc = "Git contains git artifact location details"]
3150 #[serde(default, skip_serializing_if = "Option::is_none")]
3151 pub git: Option<IoArgoprojWorkflowV1alpha1GitArtifact>,
3152 #[doc = "GlobalName exports an output artifact to the global scope, making it available as '{{io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts"]
3153 #[serde(
3154 rename = "globalName",
3155 default,
3156 skip_serializing_if = "Option::is_none"
3157 )]
3158 pub global_name: Option<String>,
3159 #[doc = "HDFS contains HDFS artifact location details"]
3160 #[serde(default, skip_serializing_if = "Option::is_none")]
3161 pub hdfs: Option<IoArgoprojWorkflowV1alpha1HdfsArtifact>,
3162 #[doc = "HTTP contains HTTP artifact location details"]
3163 #[serde(default, skip_serializing_if = "Option::is_none")]
3164 pub http: Option<IoArgoprojWorkflowV1alpha1HttpArtifact>,
3165 #[doc = "mode bits to use on this file, must be a value between 0 and 0777 set when loading input artifacts."]
3166 #[serde(default, skip_serializing_if = "Option::is_none")]
3167 pub mode: Option<i64>,
3168 #[doc = "name of the artifact. must be unique within a template's inputs/outputs."]
3169 pub name: String,
3170 #[doc = "Make Artifacts optional, if Artifacts doesn't generate or exist"]
3171 #[serde(default, skip_serializing_if = "Option::is_none")]
3172 pub optional: Option<bool>,
3173 #[doc = "OSS contains OSS artifact location details"]
3174 #[serde(default, skip_serializing_if = "Option::is_none")]
3175 pub oss: Option<IoArgoprojWorkflowV1alpha1OssArtifact>,
3176 #[doc = "Path is the container path to the artifact"]
3177 #[serde(default, skip_serializing_if = "Option::is_none")]
3178 pub path: Option<String>,
3179 #[doc = "Raw contains raw artifact location details"]
3180 #[serde(default, skip_serializing_if = "Option::is_none")]
3181 pub raw: Option<IoArgoprojWorkflowV1alpha1RawArtifact>,
3182 #[doc = "If mode is set, apply the permission recursively into the artifact if it is a folder"]
3183 #[serde(
3184 rename = "recurseMode",
3185 default,
3186 skip_serializing_if = "Option::is_none"
3187 )]
3188 pub recurse_mode: Option<bool>,
3189 #[doc = "S3 contains S3 artifact location details"]
3190 #[serde(default, skip_serializing_if = "Option::is_none")]
3191 pub s3: Option<IoArgoprojWorkflowV1alpha1S3Artifact>,
3192 #[doc = "SubPath allows an artifact to be sourced from a subpath within the specified source"]
3193 #[serde(rename = "subPath", default, skip_serializing_if = "Option::is_none")]
3194 pub sub_path: Option<String>,
3195}
3196impl From<&IoArgoprojWorkflowV1alpha1Artifact> for IoArgoprojWorkflowV1alpha1Artifact {
3197 fn from(value: &IoArgoprojWorkflowV1alpha1Artifact) -> Self {
3198 value.clone()
3199 }
3200}
3201#[doc = "ArtifactGC describes how to delete artifacts from completed Workflows - this is embedded into the WorkflowLevelArtifactGC, and also used for individual Artifacts to override that as needed"]
3202#[derive(Clone, Debug, Deserialize, Serialize)]
3203pub struct IoArgoprojWorkflowV1alpha1ArtifactGc {
3204 #[doc = "PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion"]
3205 #[serde(
3206 rename = "podMetadata",
3207 default,
3208 skip_serializing_if = "Option::is_none"
3209 )]
3210 pub pod_metadata: Option<IoArgoprojWorkflowV1alpha1Metadata>,
3211 #[doc = "ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion"]
3212 #[serde(
3213 rename = "serviceAccountName",
3214 default,
3215 skip_serializing_if = "Option::is_none"
3216 )]
3217 pub service_account_name: Option<String>,
3218 #[doc = "Strategy is the strategy to use."]
3219 #[serde(default, skip_serializing_if = "Option::is_none")]
3220 pub strategy: Option<String>,
3221}
3222impl From<&IoArgoprojWorkflowV1alpha1ArtifactGc> for IoArgoprojWorkflowV1alpha1ArtifactGc {
3223 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactGc) -> Self {
3224 value.clone()
3225 }
3226}
3227#[doc = "ArtifactGCSpec specifies the Artifacts that need to be deleted"]
3228#[derive(Clone, Debug, Deserialize, Serialize)]
3229pub struct IoArgoprojWorkflowV1alpha1ArtifactGcSpec {
3230 #[doc = "ArtifactsByNode maps Node name to information pertaining to Artifacts on that Node"]
3231 #[serde(
3232 rename = "artifactsByNode",
3233 default,
3234 skip_serializing_if = "std::collections::HashMap::is_empty"
3235 )]
3236 pub artifacts_by_node:
3237 std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1ArtifactNodeSpec>,
3238}
3239impl From<&IoArgoprojWorkflowV1alpha1ArtifactGcSpec> for IoArgoprojWorkflowV1alpha1ArtifactGcSpec {
3240 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactGcSpec) -> Self {
3241 value.clone()
3242 }
3243}
3244#[doc = "ArtifactGCStatus describes the result of the deletion"]
3245#[derive(Clone, Debug, Deserialize, Serialize)]
3246pub struct IoArgoprojWorkflowV1alpha1ArtifactGcStatus {
3247 #[doc = "ArtifactResultsByNode maps Node name to result"]
3248 #[serde(
3249 rename = "artifactResultsByNode",
3250 default,
3251 skip_serializing_if = "std::collections::HashMap::is_empty"
3252 )]
3253 pub artifact_results_by_node:
3254 std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1ArtifactResultNodeStatus>,
3255}
3256impl From<&IoArgoprojWorkflowV1alpha1ArtifactGcStatus>
3257 for IoArgoprojWorkflowV1alpha1ArtifactGcStatus
3258{
3259 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactGcStatus) -> Self {
3260 value.clone()
3261 }
3262}
3263#[doc = "ArtifactLocation describes a location for a single or multiple artifacts. It is used as single artifact in the context of inputs/outputs (e.g. outputs.artifacts.artname). It is also used to describe the location of multiple artifacts such as the archive location of a single workflow step, which the executor will use as a default location to store its files."]
3264#[derive(Clone, Debug, Deserialize, Serialize)]
3265pub struct IoArgoprojWorkflowV1alpha1ArtifactLocation {
3266 #[doc = "ArchiveLogs indicates if the container logs should be archived"]
3267 #[serde(
3268 rename = "archiveLogs",
3269 default,
3270 skip_serializing_if = "Option::is_none"
3271 )]
3272 pub archive_logs: Option<bool>,
3273 #[doc = "Artifactory contains artifactory artifact location details"]
3274 #[serde(default, skip_serializing_if = "Option::is_none")]
3275 pub artifactory: Option<IoArgoprojWorkflowV1alpha1ArtifactoryArtifact>,
3276 #[doc = "Azure contains Azure Storage artifact location details"]
3277 #[serde(default, skip_serializing_if = "Option::is_none")]
3278 pub azure: Option<IoArgoprojWorkflowV1alpha1AzureArtifact>,
3279 #[doc = "GCS contains GCS artifact location details"]
3280 #[serde(default, skip_serializing_if = "Option::is_none")]
3281 pub gcs: Option<IoArgoprojWorkflowV1alpha1GcsArtifact>,
3282 #[doc = "Git contains git artifact location details"]
3283 #[serde(default, skip_serializing_if = "Option::is_none")]
3284 pub git: Option<IoArgoprojWorkflowV1alpha1GitArtifact>,
3285 #[doc = "HDFS contains HDFS artifact location details"]
3286 #[serde(default, skip_serializing_if = "Option::is_none")]
3287 pub hdfs: Option<IoArgoprojWorkflowV1alpha1HdfsArtifact>,
3288 #[doc = "HTTP contains HTTP artifact location details"]
3289 #[serde(default, skip_serializing_if = "Option::is_none")]
3290 pub http: Option<IoArgoprojWorkflowV1alpha1HttpArtifact>,
3291 #[doc = "OSS contains OSS artifact location details"]
3292 #[serde(default, skip_serializing_if = "Option::is_none")]
3293 pub oss: Option<IoArgoprojWorkflowV1alpha1OssArtifact>,
3294 #[doc = "Raw contains raw artifact location details"]
3295 #[serde(default, skip_serializing_if = "Option::is_none")]
3296 pub raw: Option<IoArgoprojWorkflowV1alpha1RawArtifact>,
3297 #[doc = "S3 contains S3 artifact location details"]
3298 #[serde(default, skip_serializing_if = "Option::is_none")]
3299 pub s3: Option<IoArgoprojWorkflowV1alpha1S3Artifact>,
3300}
3301impl From<&IoArgoprojWorkflowV1alpha1ArtifactLocation>
3302 for IoArgoprojWorkflowV1alpha1ArtifactLocation
3303{
3304 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactLocation) -> Self {
3305 value.clone()
3306 }
3307}
3308#[doc = "ArtifactNodeSpec specifies the Artifacts that need to be deleted for a given Node"]
3309#[derive(Clone, Debug, Deserialize, Serialize)]
3310pub struct IoArgoprojWorkflowV1alpha1ArtifactNodeSpec {
3311 #[doc = "ArchiveLocation is the template-level Artifact location specification"]
3312 #[serde(
3313 rename = "archiveLocation",
3314 default,
3315 skip_serializing_if = "Option::is_none"
3316 )]
3317 pub archive_location: Option<IoArgoprojWorkflowV1alpha1ArtifactLocation>,
3318 #[doc = "Artifacts maps artifact name to Artifact description"]
3319 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
3320 pub artifacts: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1Artifact>,
3321}
3322impl From<&IoArgoprojWorkflowV1alpha1ArtifactNodeSpec>
3323 for IoArgoprojWorkflowV1alpha1ArtifactNodeSpec
3324{
3325 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactNodeSpec) -> Self {
3326 value.clone()
3327 }
3328}
3329#[doc = "ArtifactPaths expands a step from a collection of artifacts"]
3330#[derive(Clone, Debug, Deserialize, Serialize)]
3331pub struct IoArgoprojWorkflowV1alpha1ArtifactPaths {
3332 #[doc = "Archive controls how the artifact will be saved to the artifact repository."]
3333 #[serde(default, skip_serializing_if = "Option::is_none")]
3334 pub archive: Option<IoArgoprojWorkflowV1alpha1ArchiveStrategy>,
3335 #[doc = "ArchiveLogs indicates if the container logs should be archived"]
3336 #[serde(
3337 rename = "archiveLogs",
3338 default,
3339 skip_serializing_if = "Option::is_none"
3340 )]
3341 pub archive_logs: Option<bool>,
3342 #[doc = "ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows"]
3343 #[serde(
3344 rename = "artifactGC",
3345 default,
3346 skip_serializing_if = "Option::is_none"
3347 )]
3348 pub artifact_gc: Option<IoArgoprojWorkflowV1alpha1ArtifactGc>,
3349 #[doc = "Artifactory contains artifactory artifact location details"]
3350 #[serde(default, skip_serializing_if = "Option::is_none")]
3351 pub artifactory: Option<IoArgoprojWorkflowV1alpha1ArtifactoryArtifact>,
3352 #[doc = "Azure contains Azure Storage artifact location details"]
3353 #[serde(default, skip_serializing_if = "Option::is_none")]
3354 pub azure: Option<IoArgoprojWorkflowV1alpha1AzureArtifact>,
3355 #[doc = "Has this been deleted?"]
3356 #[serde(default, skip_serializing_if = "Option::is_none")]
3357 pub deleted: Option<bool>,
3358 #[doc = "From allows an artifact to reference an artifact from a previous step"]
3359 #[serde(default, skip_serializing_if = "Option::is_none")]
3360 pub from: Option<String>,
3361 #[doc = "FromExpression, if defined, is evaluated to specify the value for the artifact"]
3362 #[serde(
3363 rename = "fromExpression",
3364 default,
3365 skip_serializing_if = "Option::is_none"
3366 )]
3367 pub from_expression: Option<String>,
3368 #[doc = "GCS contains GCS artifact location details"]
3369 #[serde(default, skip_serializing_if = "Option::is_none")]
3370 pub gcs: Option<IoArgoprojWorkflowV1alpha1GcsArtifact>,
3371 #[doc = "Git contains git artifact location details"]
3372 #[serde(default, skip_serializing_if = "Option::is_none")]
3373 pub git: Option<IoArgoprojWorkflowV1alpha1GitArtifact>,
3374 #[doc = "GlobalName exports an output artifact to the global scope, making it available as '{{io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts"]
3375 #[serde(
3376 rename = "globalName",
3377 default,
3378 skip_serializing_if = "Option::is_none"
3379 )]
3380 pub global_name: Option<String>,
3381 #[doc = "HDFS contains HDFS artifact location details"]
3382 #[serde(default, skip_serializing_if = "Option::is_none")]
3383 pub hdfs: Option<IoArgoprojWorkflowV1alpha1HdfsArtifact>,
3384 #[doc = "HTTP contains HTTP artifact location details"]
3385 #[serde(default, skip_serializing_if = "Option::is_none")]
3386 pub http: Option<IoArgoprojWorkflowV1alpha1HttpArtifact>,
3387 #[doc = "mode bits to use on this file, must be a value between 0 and 0777 set when loading input artifacts."]
3388 #[serde(default, skip_serializing_if = "Option::is_none")]
3389 pub mode: Option<i64>,
3390 #[doc = "name of the artifact. must be unique within a template's inputs/outputs."]
3391 pub name: String,
3392 #[doc = "Make Artifacts optional, if Artifacts doesn't generate or exist"]
3393 #[serde(default, skip_serializing_if = "Option::is_none")]
3394 pub optional: Option<bool>,
3395 #[doc = "OSS contains OSS artifact location details"]
3396 #[serde(default, skip_serializing_if = "Option::is_none")]
3397 pub oss: Option<IoArgoprojWorkflowV1alpha1OssArtifact>,
3398 #[doc = "Path is the container path to the artifact"]
3399 #[serde(default, skip_serializing_if = "Option::is_none")]
3400 pub path: Option<String>,
3401 #[doc = "Raw contains raw artifact location details"]
3402 #[serde(default, skip_serializing_if = "Option::is_none")]
3403 pub raw: Option<IoArgoprojWorkflowV1alpha1RawArtifact>,
3404 #[doc = "If mode is set, apply the permission recursively into the artifact if it is a folder"]
3405 #[serde(
3406 rename = "recurseMode",
3407 default,
3408 skip_serializing_if = "Option::is_none"
3409 )]
3410 pub recurse_mode: Option<bool>,
3411 #[doc = "S3 contains S3 artifact location details"]
3412 #[serde(default, skip_serializing_if = "Option::is_none")]
3413 pub s3: Option<IoArgoprojWorkflowV1alpha1S3Artifact>,
3414 #[doc = "SubPath allows an artifact to be sourced from a subpath within the specified source"]
3415 #[serde(rename = "subPath", default, skip_serializing_if = "Option::is_none")]
3416 pub sub_path: Option<String>,
3417}
3418impl From<&IoArgoprojWorkflowV1alpha1ArtifactPaths> for IoArgoprojWorkflowV1alpha1ArtifactPaths {
3419 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactPaths) -> Self {
3420 value.clone()
3421 }
3422}
3423#[doc = "ArtifactRepository represents an artifact repository in which a controller will store its artifacts"]
3424#[derive(Clone, Debug, Deserialize, Serialize)]
3425pub struct IoArgoprojWorkflowV1alpha1ArtifactRepository {
3426 #[doc = "ArchiveLogs enables log archiving"]
3427 #[serde(
3428 rename = "archiveLogs",
3429 default,
3430 skip_serializing_if = "Option::is_none"
3431 )]
3432 pub archive_logs: Option<bool>,
3433 #[doc = "Artifactory stores artifacts to JFrog Artifactory"]
3434 #[serde(default, skip_serializing_if = "Option::is_none")]
3435 pub artifactory: Option<IoArgoprojWorkflowV1alpha1ArtifactoryArtifactRepository>,
3436 #[doc = "Azure stores artifact in an Azure Storage account"]
3437 #[serde(default, skip_serializing_if = "Option::is_none")]
3438 pub azure: Option<IoArgoprojWorkflowV1alpha1AzureArtifactRepository>,
3439 #[doc = "GCS stores artifact in a GCS object store"]
3440 #[serde(default, skip_serializing_if = "Option::is_none")]
3441 pub gcs: Option<IoArgoprojWorkflowV1alpha1GcsArtifactRepository>,
3442 #[doc = "HDFS stores artifacts in HDFS"]
3443 #[serde(default, skip_serializing_if = "Option::is_none")]
3444 pub hdfs: Option<IoArgoprojWorkflowV1alpha1HdfsArtifactRepository>,
3445 #[doc = "OSS stores artifact in a OSS-compliant object store"]
3446 #[serde(default, skip_serializing_if = "Option::is_none")]
3447 pub oss: Option<IoArgoprojWorkflowV1alpha1OssArtifactRepository>,
3448 #[doc = "S3 stores artifact in a S3-compliant object store"]
3449 #[serde(default, skip_serializing_if = "Option::is_none")]
3450 pub s3: Option<IoArgoprojWorkflowV1alpha1S3ArtifactRepository>,
3451}
3452impl From<&IoArgoprojWorkflowV1alpha1ArtifactRepository>
3453 for IoArgoprojWorkflowV1alpha1ArtifactRepository
3454{
3455 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactRepository) -> Self {
3456 value.clone()
3457 }
3458}
3459#[derive(Clone, Debug, Deserialize, Serialize)]
3460pub struct IoArgoprojWorkflowV1alpha1ArtifactRepositoryRef {
3461 #[doc = "The name of the config map. Defaults to \"artifact-repositories\"."]
3462 #[serde(rename = "configMap", default, skip_serializing_if = "Option::is_none")]
3463 pub config_map: Option<String>,
3464 #[doc = "The config map key. Defaults to the value of the \"workflows.argoproj.io/default-artifact-repository\" annotation."]
3465 #[serde(default, skip_serializing_if = "Option::is_none")]
3466 pub key: Option<String>,
3467}
3468impl From<&IoArgoprojWorkflowV1alpha1ArtifactRepositoryRef>
3469 for IoArgoprojWorkflowV1alpha1ArtifactRepositoryRef
3470{
3471 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactRepositoryRef) -> Self {
3472 value.clone()
3473 }
3474}
3475#[derive(Clone, Debug, Deserialize, Serialize)]
3476pub struct IoArgoprojWorkflowV1alpha1ArtifactRepositoryRefStatus {
3477 #[doc = "The repository the workflow will use. This maybe empty before v3.1."]
3478 #[serde(
3479 rename = "artifactRepository",
3480 default,
3481 skip_serializing_if = "Option::is_none"
3482 )]
3483 pub artifact_repository: Option<IoArgoprojWorkflowV1alpha1ArtifactRepository>,
3484 #[doc = "The name of the config map. Defaults to \"artifact-repositories\"."]
3485 #[serde(rename = "configMap", default, skip_serializing_if = "Option::is_none")]
3486 pub config_map: Option<String>,
3487 #[doc = "If this ref represents the default artifact repository, rather than a config map."]
3488 #[serde(default, skip_serializing_if = "Option::is_none")]
3489 pub default: Option<bool>,
3490 #[doc = "The config map key. Defaults to the value of the \"workflows.argoproj.io/default-artifact-repository\" annotation."]
3491 #[serde(default, skip_serializing_if = "Option::is_none")]
3492 pub key: Option<String>,
3493 #[doc = "The namespace of the config map. Defaults to the workflow's namespace, or the controller's namespace (if found)."]
3494 #[serde(default, skip_serializing_if = "Option::is_none")]
3495 pub namespace: Option<String>,
3496}
3497impl From<&IoArgoprojWorkflowV1alpha1ArtifactRepositoryRefStatus>
3498 for IoArgoprojWorkflowV1alpha1ArtifactRepositoryRefStatus
3499{
3500 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactRepositoryRefStatus) -> Self {
3501 value.clone()
3502 }
3503}
3504#[doc = "ArtifactResult describes the result of attempting to delete a given Artifact"]
3505#[derive(Clone, Debug, Deserialize, Serialize)]
3506pub struct IoArgoprojWorkflowV1alpha1ArtifactResult {
3507 #[doc = "Error is an optional error message which should be set if Success==false"]
3508 #[serde(default, skip_serializing_if = "Option::is_none")]
3509 pub error: Option<String>,
3510 #[doc = "Name is the name of the Artifact"]
3511 pub name: String,
3512 #[doc = "Success describes whether the deletion succeeded"]
3513 #[serde(default, skip_serializing_if = "Option::is_none")]
3514 pub success: Option<bool>,
3515}
3516impl From<&IoArgoprojWorkflowV1alpha1ArtifactResult> for IoArgoprojWorkflowV1alpha1ArtifactResult {
3517 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactResult) -> Self {
3518 value.clone()
3519 }
3520}
3521#[doc = "ArtifactResultNodeStatus describes the result of the deletion on a given node"]
3522#[derive(Clone, Debug, Deserialize, Serialize)]
3523pub struct IoArgoprojWorkflowV1alpha1ArtifactResultNodeStatus {
3524 #[doc = "ArtifactResults maps Artifact name to result of the deletion"]
3525 #[serde(
3526 rename = "artifactResults",
3527 default,
3528 skip_serializing_if = "std::collections::HashMap::is_empty"
3529 )]
3530 pub artifact_results:
3531 std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1ArtifactResult>,
3532}
3533impl From<&IoArgoprojWorkflowV1alpha1ArtifactResultNodeStatus>
3534 for IoArgoprojWorkflowV1alpha1ArtifactResultNodeStatus
3535{
3536 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactResultNodeStatus) -> Self {
3537 value.clone()
3538 }
3539}
3540#[doc = "ArtifactoryArtifact is the location of an artifactory artifact"]
3541#[derive(Clone, Debug, Deserialize, Serialize)]
3542pub struct IoArgoprojWorkflowV1alpha1ArtifactoryArtifact {
3543 #[doc = "PasswordSecret is the secret selector to the repository password"]
3544 #[serde(
3545 rename = "passwordSecret",
3546 default,
3547 skip_serializing_if = "Option::is_none"
3548 )]
3549 pub password_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3550 #[doc = "URL of the artifact"]
3551 pub url: String,
3552 #[doc = "UsernameSecret is the secret selector to the repository username"]
3553 #[serde(
3554 rename = "usernameSecret",
3555 default,
3556 skip_serializing_if = "Option::is_none"
3557 )]
3558 pub username_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3559}
3560impl From<&IoArgoprojWorkflowV1alpha1ArtifactoryArtifact>
3561 for IoArgoprojWorkflowV1alpha1ArtifactoryArtifact
3562{
3563 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactoryArtifact) -> Self {
3564 value.clone()
3565 }
3566}
3567#[doc = "ArtifactoryArtifactRepository defines the controller configuration for an artifactory artifact repository"]
3568#[derive(Clone, Debug, Deserialize, Serialize)]
3569pub struct IoArgoprojWorkflowV1alpha1ArtifactoryArtifactRepository {
3570 #[doc = "KeyFormat defines the format of how to store keys and can reference workflow variables."]
3571 #[serde(rename = "keyFormat", default, skip_serializing_if = "Option::is_none")]
3572 pub key_format: Option<String>,
3573 #[doc = "PasswordSecret is the secret selector to the repository password"]
3574 #[serde(
3575 rename = "passwordSecret",
3576 default,
3577 skip_serializing_if = "Option::is_none"
3578 )]
3579 pub password_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3580 #[doc = "RepoURL is the url for artifactory repo."]
3581 #[serde(rename = "repoURL", default, skip_serializing_if = "Option::is_none")]
3582 pub repo_url: Option<String>,
3583 #[doc = "UsernameSecret is the secret selector to the repository username"]
3584 #[serde(
3585 rename = "usernameSecret",
3586 default,
3587 skip_serializing_if = "Option::is_none"
3588 )]
3589 pub username_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3590}
3591impl From<&IoArgoprojWorkflowV1alpha1ArtifactoryArtifactRepository>
3592 for IoArgoprojWorkflowV1alpha1ArtifactoryArtifactRepository
3593{
3594 fn from(value: &IoArgoprojWorkflowV1alpha1ArtifactoryArtifactRepository) -> Self {
3595 value.clone()
3596 }
3597}
3598#[doc = "AzureArtifact is the location of a an Azure Storage artifact"]
3599#[derive(Clone, Debug, Deserialize, Serialize)]
3600pub struct IoArgoprojWorkflowV1alpha1AzureArtifact {
3601 #[doc = "AccountKeySecret is the secret selector to the Azure Blob Storage account access key"]
3602 #[serde(
3603 rename = "accountKeySecret",
3604 default,
3605 skip_serializing_if = "Option::is_none"
3606 )]
3607 pub account_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3608 #[doc = "Blob is the blob name (i.e., path) in the container where the artifact resides"]
3609 pub blob: String,
3610 #[doc = "Container is the container where resources will be stored"]
3611 pub container: String,
3612 #[doc = "Endpoint is the service url associated with an account. It is most likely \"https://<ACCOUNT_NAME>.blob.core.windows.net\""]
3613 pub endpoint: String,
3614 #[doc = "UseSDKCreds tells the driver to figure out credentials based on sdk defaults."]
3615 #[serde(
3616 rename = "useSDKCreds",
3617 default,
3618 skip_serializing_if = "Option::is_none"
3619 )]
3620 pub use_sdk_creds: Option<bool>,
3621}
3622impl From<&IoArgoprojWorkflowV1alpha1AzureArtifact> for IoArgoprojWorkflowV1alpha1AzureArtifact {
3623 fn from(value: &IoArgoprojWorkflowV1alpha1AzureArtifact) -> Self {
3624 value.clone()
3625 }
3626}
3627#[doc = "AzureArtifactRepository defines the controller configuration for an Azure Blob Storage artifact repository"]
3628#[derive(Clone, Debug, Deserialize, Serialize)]
3629pub struct IoArgoprojWorkflowV1alpha1AzureArtifactRepository {
3630 #[doc = "AccountKeySecret is the secret selector to the Azure Blob Storage account access key"]
3631 #[serde(
3632 rename = "accountKeySecret",
3633 default,
3634 skip_serializing_if = "Option::is_none"
3635 )]
3636 pub account_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3637 #[doc = "BlobNameFormat is defines the format of how to store blob names. Can reference workflow variables"]
3638 #[serde(
3639 rename = "blobNameFormat",
3640 default,
3641 skip_serializing_if = "Option::is_none"
3642 )]
3643 pub blob_name_format: Option<String>,
3644 #[doc = "Container is the container where resources will be stored"]
3645 pub container: String,
3646 #[doc = "Endpoint is the service url associated with an account. It is most likely \"https://<ACCOUNT_NAME>.blob.core.windows.net\""]
3647 pub endpoint: String,
3648 #[doc = "UseSDKCreds tells the driver to figure out credentials based on sdk defaults."]
3649 #[serde(
3650 rename = "useSDKCreds",
3651 default,
3652 skip_serializing_if = "Option::is_none"
3653 )]
3654 pub use_sdk_creds: Option<bool>,
3655}
3656impl From<&IoArgoprojWorkflowV1alpha1AzureArtifactRepository>
3657 for IoArgoprojWorkflowV1alpha1AzureArtifactRepository
3658{
3659 fn from(value: &IoArgoprojWorkflowV1alpha1AzureArtifactRepository) -> Self {
3660 value.clone()
3661 }
3662}
3663#[doc = "Backoff is a backoff strategy to use within retryStrategy"]
3664#[derive(Clone, Debug, Deserialize, Serialize)]
3665pub struct IoArgoprojWorkflowV1alpha1Backoff {
3666 #[doc = "Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. \"2m\", \"1h\")"]
3667 #[serde(default, skip_serializing_if = "Option::is_none")]
3668 pub duration: Option<String>,
3669 #[doc = "Factor is a factor to multiply the base duration after each failed retry"]
3670 #[serde(default, skip_serializing_if = "Option::is_none")]
3671 pub factor: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
3672 #[doc = "MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy"]
3673 #[serde(
3674 rename = "maxDuration",
3675 default,
3676 skip_serializing_if = "Option::is_none"
3677 )]
3678 pub max_duration: Option<String>,
3679}
3680impl From<&IoArgoprojWorkflowV1alpha1Backoff> for IoArgoprojWorkflowV1alpha1Backoff {
3681 fn from(value: &IoArgoprojWorkflowV1alpha1Backoff) -> Self {
3682 value.clone()
3683 }
3684}
3685#[doc = "BasicAuth describes the secret selectors required for basic authentication"]
3686#[derive(Clone, Debug, Deserialize, Serialize)]
3687pub struct IoArgoprojWorkflowV1alpha1BasicAuth {
3688 #[doc = "PasswordSecret is the secret selector to the repository password"]
3689 #[serde(
3690 rename = "passwordSecret",
3691 default,
3692 skip_serializing_if = "Option::is_none"
3693 )]
3694 pub password_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3695 #[doc = "UsernameSecret is the secret selector to the repository username"]
3696 #[serde(
3697 rename = "usernameSecret",
3698 default,
3699 skip_serializing_if = "Option::is_none"
3700 )]
3701 pub username_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3702}
3703impl From<&IoArgoprojWorkflowV1alpha1BasicAuth> for IoArgoprojWorkflowV1alpha1BasicAuth {
3704 fn from(value: &IoArgoprojWorkflowV1alpha1BasicAuth) -> Self {
3705 value.clone()
3706 }
3707}
3708#[doc = "Cache is the configuration for the type of cache to be used"]
3709#[derive(Clone, Debug, Deserialize, Serialize)]
3710pub struct IoArgoprojWorkflowV1alpha1Cache {
3711 #[doc = "ConfigMap sets a ConfigMap-based cache"]
3712 #[serde(rename = "configMap")]
3713 pub config_map: IoK8sApiCoreV1ConfigMapKeySelector,
3714}
3715impl From<&IoArgoprojWorkflowV1alpha1Cache> for IoArgoprojWorkflowV1alpha1Cache {
3716 fn from(value: &IoArgoprojWorkflowV1alpha1Cache) -> Self {
3717 value.clone()
3718 }
3719}
3720#[doc = "ClientCertAuth holds necessary information for client authentication via certificates"]
3721#[derive(Clone, Debug, Deserialize, Serialize)]
3722pub struct IoArgoprojWorkflowV1alpha1ClientCertAuth {
3723 #[serde(
3724 rename = "clientCertSecret",
3725 default,
3726 skip_serializing_if = "Option::is_none"
3727 )]
3728 pub client_cert_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3729 #[serde(
3730 rename = "clientKeySecret",
3731 default,
3732 skip_serializing_if = "Option::is_none"
3733 )]
3734 pub client_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
3735}
3736impl From<&IoArgoprojWorkflowV1alpha1ClientCertAuth> for IoArgoprojWorkflowV1alpha1ClientCertAuth {
3737 fn from(value: &IoArgoprojWorkflowV1alpha1ClientCertAuth) -> Self {
3738 value.clone()
3739 }
3740}
3741#[doc = "ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope"]
3742#[derive(Clone, Debug, Deserialize, Serialize)]
3743pub struct IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate {
3744 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
3745 #[serde(
3746 rename = "apiVersion",
3747 default,
3748 skip_serializing_if = "Option::is_none"
3749 )]
3750 pub api_version: Option<String>,
3751 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
3752 #[serde(default, skip_serializing_if = "Option::is_none")]
3753 pub kind: Option<String>,
3754 pub metadata: IoK8sApimachineryPkgApisMetaV1ObjectMeta,
3755 pub spec: IoArgoprojWorkflowV1alpha1WorkflowSpec,
3756}
3757impl From<&IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate>
3758 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate
3759{
3760 fn from(value: &IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate) -> Self {
3761 value.clone()
3762 }
3763}
3764#[derive(Clone, Debug, Deserialize, Serialize)]
3765pub struct IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateCreateRequest {
3766 #[serde(
3767 rename = "createOptions",
3768 default,
3769 skip_serializing_if = "Option::is_none"
3770 )]
3771 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
3772 #[serde(default, skip_serializing_if = "Option::is_none")]
3773 pub template: Option<IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate>,
3774}
3775impl From<&IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateCreateRequest>
3776 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateCreateRequest
3777{
3778 fn from(value: &IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateCreateRequest) -> Self {
3779 value.clone()
3780 }
3781}
3782#[derive(Clone, Debug, Deserialize, Serialize)]
3783pub struct IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse(
3784 pub serde_json::Map<String, serde_json::Value>,
3785);
3786impl std::ops::Deref for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse {
3787 type Target = serde_json::Map<String, serde_json::Value>;
3788 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
3789 &self.0
3790 }
3791}
3792impl From<IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse>
3793 for serde_json::Map<String, serde_json::Value>
3794{
3795 fn from(value: IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse) -> Self {
3796 value.0
3797 }
3798}
3799impl From<&IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse>
3800 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse
3801{
3802 fn from(value: &IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse) -> Self {
3803 value.clone()
3804 }
3805}
3806impl From<serde_json::Map<String, serde_json::Value>>
3807 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateDeleteResponse
3808{
3809 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
3810 Self(value)
3811 }
3812}
3813#[derive(Clone, Debug, Deserialize, Serialize)]
3814pub struct IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateLintRequest {
3815 #[serde(
3816 rename = "createOptions",
3817 default,
3818 skip_serializing_if = "Option::is_none"
3819 )]
3820 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
3821 #[serde(default, skip_serializing_if = "Option::is_none")]
3822 pub template: Option<IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate>,
3823}
3824impl From<&IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateLintRequest>
3825 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateLintRequest
3826{
3827 fn from(value: &IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateLintRequest) -> Self {
3828 value.clone()
3829 }
3830}
3831#[doc = "ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate resources"]
3832#[derive(Clone, Debug, Deserialize, Serialize)]
3833pub struct IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateList {
3834 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
3835 #[serde(
3836 rename = "apiVersion",
3837 default,
3838 skip_serializing_if = "Option::is_none"
3839 )]
3840 pub api_version: Option<String>,
3841 pub items: Vec<IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate>,
3842 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
3843 #[serde(default, skip_serializing_if = "Option::is_none")]
3844 pub kind: Option<String>,
3845 pub metadata: IoK8sApimachineryPkgApisMetaV1ListMeta,
3846}
3847impl From<&IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateList>
3848 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateList
3849{
3850 fn from(value: &IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateList) -> Self {
3851 value.clone()
3852 }
3853}
3854#[derive(Clone, Debug, Deserialize, Serialize)]
3855pub struct IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateUpdateRequest {
3856 #[doc = "DEPRECATED: This field is ignored."]
3857 #[serde(default, skip_serializing_if = "Option::is_none")]
3858 pub name: Option<String>,
3859 #[serde(default, skip_serializing_if = "Option::is_none")]
3860 pub template: Option<IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplate>,
3861}
3862impl From<&IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateUpdateRequest>
3863 for IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateUpdateRequest
3864{
3865 fn from(value: &IoArgoprojWorkflowV1alpha1ClusterWorkflowTemplateUpdateRequest) -> Self {
3866 value.clone()
3867 }
3868}
3869#[derive(Clone, Debug, Deserialize, Serialize)]
3870pub struct IoArgoprojWorkflowV1alpha1CollectEventRequest {
3871 #[serde(default, skip_serializing_if = "Option::is_none")]
3872 pub name: Option<String>,
3873}
3874impl From<&IoArgoprojWorkflowV1alpha1CollectEventRequest>
3875 for IoArgoprojWorkflowV1alpha1CollectEventRequest
3876{
3877 fn from(value: &IoArgoprojWorkflowV1alpha1CollectEventRequest) -> Self {
3878 value.clone()
3879 }
3880}
3881#[derive(Clone, Debug, Deserialize, Serialize)]
3882pub struct IoArgoprojWorkflowV1alpha1CollectEventResponse(
3883 pub serde_json::Map<String, serde_json::Value>,
3884);
3885impl std::ops::Deref for IoArgoprojWorkflowV1alpha1CollectEventResponse {
3886 type Target = serde_json::Map<String, serde_json::Value>;
3887 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
3888 &self.0
3889 }
3890}
3891impl From<IoArgoprojWorkflowV1alpha1CollectEventResponse>
3892 for serde_json::Map<String, serde_json::Value>
3893{
3894 fn from(value: IoArgoprojWorkflowV1alpha1CollectEventResponse) -> Self {
3895 value.0
3896 }
3897}
3898impl From<&IoArgoprojWorkflowV1alpha1CollectEventResponse>
3899 for IoArgoprojWorkflowV1alpha1CollectEventResponse
3900{
3901 fn from(value: &IoArgoprojWorkflowV1alpha1CollectEventResponse) -> Self {
3902 value.clone()
3903 }
3904}
3905impl From<serde_json::Map<String, serde_json::Value>>
3906 for IoArgoprojWorkflowV1alpha1CollectEventResponse
3907{
3908 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
3909 Self(value)
3910 }
3911}
3912#[doc = "Column is a custom column that will be exposed in the Workflow List View."]
3913#[derive(Clone, Debug, Deserialize, Serialize)]
3914pub struct IoArgoprojWorkflowV1alpha1Column {
3915 #[doc = "The key of the label or annotation, e.g., \"workflows.argoproj.io/completed\"."]
3916 pub key: String,
3917 #[doc = "The name of this column, e.g., \"Workflow Completed\"."]
3918 pub name: String,
3919 #[doc = "The type of this column, \"label\" or \"annotation\"."]
3920 #[serde(rename = "type")]
3921 pub type_: String,
3922}
3923impl From<&IoArgoprojWorkflowV1alpha1Column> for IoArgoprojWorkflowV1alpha1Column {
3924 fn from(value: &IoArgoprojWorkflowV1alpha1Column) -> Self {
3925 value.clone()
3926 }
3927}
3928#[derive(Clone, Debug, Deserialize, Serialize)]
3929pub struct IoArgoprojWorkflowV1alpha1Condition {
3930 #[doc = "Message is the condition message"]
3931 #[serde(default, skip_serializing_if = "Option::is_none")]
3932 pub message: Option<String>,
3933 #[doc = "Status is the status of the condition"]
3934 #[serde(default, skip_serializing_if = "Option::is_none")]
3935 pub status: Option<String>,
3936 #[doc = "Type is the type of condition"]
3937 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
3938 pub type_: Option<String>,
3939}
3940impl From<&IoArgoprojWorkflowV1alpha1Condition> for IoArgoprojWorkflowV1alpha1Condition {
3941 fn from(value: &IoArgoprojWorkflowV1alpha1Condition) -> Self {
3942 value.clone()
3943 }
3944}
3945#[derive(Clone, Debug, Deserialize, Serialize)]
3946pub struct IoArgoprojWorkflowV1alpha1ContainerNode {
3947 #[doc = "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
3948 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3949 pub args: Vec<String>,
3950 #[doc = "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
3951 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3952 pub command: Vec<String>,
3953 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3954 pub dependencies: Vec<String>,
3955 #[doc = "List of environment variables to set in the container. Cannot be updated."]
3956 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3957 pub env: Vec<IoK8sApiCoreV1EnvVar>,
3958 #[doc = "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated."]
3959 #[serde(rename = "envFrom", default, skip_serializing_if = "Vec::is_empty")]
3960 pub env_from: Vec<IoK8sApiCoreV1EnvFromSource>,
3961 #[doc = "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."]
3962 #[serde(default, skip_serializing_if = "Option::is_none")]
3963 pub image: Option<String>,
3964 #[doc = "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images"]
3965 #[serde(
3966 rename = "imagePullPolicy",
3967 default,
3968 skip_serializing_if = "Option::is_none"
3969 )]
3970 pub image_pull_policy: Option<String>,
3971 #[doc = "Actions that the management system should take in response to container lifecycle events. Cannot be updated."]
3972 #[serde(default, skip_serializing_if = "Option::is_none")]
3973 pub lifecycle: Option<IoK8sApiCoreV1Lifecycle>,
3974 #[doc = "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
3975 #[serde(
3976 rename = "livenessProbe",
3977 default,
3978 skip_serializing_if = "Option::is_none"
3979 )]
3980 pub liveness_probe: Option<IoK8sApiCoreV1Probe>,
3981 #[doc = "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated."]
3982 pub name: String,
3983 #[doc = "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated."]
3984 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3985 pub ports: Vec<IoK8sApiCoreV1ContainerPort>,
3986 #[doc = "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
3987 #[serde(
3988 rename = "readinessProbe",
3989 default,
3990 skip_serializing_if = "Option::is_none"
3991 )]
3992 pub readiness_probe: Option<IoK8sApiCoreV1Probe>,
3993 #[doc = "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"]
3994 #[serde(default, skip_serializing_if = "Option::is_none")]
3995 pub resources: Option<IoK8sApiCoreV1ResourceRequirements>,
3996 #[doc = "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"]
3997 #[serde(
3998 rename = "securityContext",
3999 default,
4000 skip_serializing_if = "Option::is_none"
4001 )]
4002 pub security_context: Option<IoK8sApiCoreV1SecurityContext>,
4003 #[doc = "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
4004 #[serde(
4005 rename = "startupProbe",
4006 default,
4007 skip_serializing_if = "Option::is_none"
4008 )]
4009 pub startup_probe: Option<IoK8sApiCoreV1Probe>,
4010 #[doc = "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false."]
4011 #[serde(default, skip_serializing_if = "Option::is_none")]
4012 pub stdin: Option<bool>,
4013 #[doc = "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false"]
4014 #[serde(rename = "stdinOnce", default, skip_serializing_if = "Option::is_none")]
4015 pub stdin_once: Option<bool>,
4016 #[doc = "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."]
4017 #[serde(
4018 rename = "terminationMessagePath",
4019 default,
4020 skip_serializing_if = "Option::is_none"
4021 )]
4022 pub termination_message_path: Option<String>,
4023 #[doc = "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."]
4024 #[serde(
4025 rename = "terminationMessagePolicy",
4026 default,
4027 skip_serializing_if = "Option::is_none"
4028 )]
4029 pub termination_message_policy: Option<String>,
4030 #[doc = "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false."]
4031 #[serde(default, skip_serializing_if = "Option::is_none")]
4032 pub tty: Option<bool>,
4033 #[doc = "volumeDevices is the list of block devices to be used by the container."]
4034 #[serde(
4035 rename = "volumeDevices",
4036 default,
4037 skip_serializing_if = "Vec::is_empty"
4038 )]
4039 pub volume_devices: Vec<IoK8sApiCoreV1VolumeDevice>,
4040 #[doc = "Pod volumes to mount into the container's filesystem. Cannot be updated."]
4041 #[serde(
4042 rename = "volumeMounts",
4043 default,
4044 skip_serializing_if = "Vec::is_empty"
4045 )]
4046 pub volume_mounts: Vec<IoK8sApiCoreV1VolumeMount>,
4047 #[doc = "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated."]
4048 #[serde(
4049 rename = "workingDir",
4050 default,
4051 skip_serializing_if = "Option::is_none"
4052 )]
4053 pub working_dir: Option<String>,
4054}
4055impl From<&IoArgoprojWorkflowV1alpha1ContainerNode> for IoArgoprojWorkflowV1alpha1ContainerNode {
4056 fn from(value: &IoArgoprojWorkflowV1alpha1ContainerNode) -> Self {
4057 value.clone()
4058 }
4059}
4060#[derive(Clone, Debug, Deserialize, Serialize)]
4061pub struct IoArgoprojWorkflowV1alpha1ContainerSetRetryStrategy {
4062 #[doc = "Duration is the time between each retry, examples values are \"300ms\", \"1s\" or \"5m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\"."]
4063 #[serde(default, skip_serializing_if = "Option::is_none")]
4064 pub duration: Option<String>,
4065 #[doc = "Nbr of retries"]
4066 pub retries: IoK8sApimachineryPkgUtilIntstrIntOrString,
4067}
4068impl From<&IoArgoprojWorkflowV1alpha1ContainerSetRetryStrategy>
4069 for IoArgoprojWorkflowV1alpha1ContainerSetRetryStrategy
4070{
4071 fn from(value: &IoArgoprojWorkflowV1alpha1ContainerSetRetryStrategy) -> Self {
4072 value.clone()
4073 }
4074}
4075#[derive(Clone, Debug, Deserialize, Serialize)]
4076pub struct IoArgoprojWorkflowV1alpha1ContainerSetTemplate {
4077 pub containers: Vec<IoArgoprojWorkflowV1alpha1ContainerNode>,
4078 #[doc = "RetryStrategy describes how to retry a container nodes in the container set if it fails. Nbr of retries(default 0) and sleep duration between retries(default 0s, instant retry) can be set."]
4079 #[serde(
4080 rename = "retryStrategy",
4081 default,
4082 skip_serializing_if = "Option::is_none"
4083 )]
4084 pub retry_strategy: Option<IoArgoprojWorkflowV1alpha1ContainerSetRetryStrategy>,
4085 #[serde(
4086 rename = "volumeMounts",
4087 default,
4088 skip_serializing_if = "Vec::is_empty"
4089 )]
4090 pub volume_mounts: Vec<IoK8sApiCoreV1VolumeMount>,
4091}
4092impl From<&IoArgoprojWorkflowV1alpha1ContainerSetTemplate>
4093 for IoArgoprojWorkflowV1alpha1ContainerSetTemplate
4094{
4095 fn from(value: &IoArgoprojWorkflowV1alpha1ContainerSetTemplate) -> Self {
4096 value.clone()
4097 }
4098}
4099#[doc = "ContinueOn defines if a workflow should continue even if a task or step fails/errors. It can be specified if the workflow should continue when the pod errors, fails or both."]
4100#[derive(Clone, Debug, Deserialize, Serialize)]
4101pub struct IoArgoprojWorkflowV1alpha1ContinueOn {
4102 #[serde(default, skip_serializing_if = "Option::is_none")]
4103 pub error: Option<bool>,
4104 #[serde(default, skip_serializing_if = "Option::is_none")]
4105 pub failed: Option<bool>,
4106}
4107impl From<&IoArgoprojWorkflowV1alpha1ContinueOn> for IoArgoprojWorkflowV1alpha1ContinueOn {
4108 fn from(value: &IoArgoprojWorkflowV1alpha1ContinueOn) -> Self {
4109 value.clone()
4110 }
4111}
4112#[doc = "Counter is a Counter prometheus metric"]
4113#[derive(Clone, Debug, Deserialize, Serialize)]
4114pub struct IoArgoprojWorkflowV1alpha1Counter {
4115 #[doc = "Value is the value of the metric"]
4116 pub value: String,
4117}
4118impl From<&IoArgoprojWorkflowV1alpha1Counter> for IoArgoprojWorkflowV1alpha1Counter {
4119 fn from(value: &IoArgoprojWorkflowV1alpha1Counter) -> Self {
4120 value.clone()
4121 }
4122}
4123#[derive(Clone, Debug, Deserialize, Serialize)]
4124pub struct IoArgoprojWorkflowV1alpha1CreateCronWorkflowRequest {
4125 #[serde(
4126 rename = "createOptions",
4127 default,
4128 skip_serializing_if = "Option::is_none"
4129 )]
4130 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
4131 #[serde(
4132 rename = "cronWorkflow",
4133 default,
4134 skip_serializing_if = "Option::is_none"
4135 )]
4136 pub cron_workflow: Option<IoArgoprojWorkflowV1alpha1CronWorkflow>,
4137 #[serde(default, skip_serializing_if = "Option::is_none")]
4138 pub namespace: Option<String>,
4139}
4140impl From<&IoArgoprojWorkflowV1alpha1CreateCronWorkflowRequest>
4141 for IoArgoprojWorkflowV1alpha1CreateCronWorkflowRequest
4142{
4143 fn from(value: &IoArgoprojWorkflowV1alpha1CreateCronWorkflowRequest) -> Self {
4144 value.clone()
4145 }
4146}
4147#[doc = "CreateS3BucketOptions options used to determine automatic automatic bucket-creation process"]
4148#[derive(Clone, Debug, Deserialize, Serialize)]
4149pub struct IoArgoprojWorkflowV1alpha1CreateS3BucketOptions {
4150 #[doc = "ObjectLocking Enable object locking"]
4151 #[serde(
4152 rename = "objectLocking",
4153 default,
4154 skip_serializing_if = "Option::is_none"
4155 )]
4156 pub object_locking: Option<bool>,
4157}
4158impl From<&IoArgoprojWorkflowV1alpha1CreateS3BucketOptions>
4159 for IoArgoprojWorkflowV1alpha1CreateS3BucketOptions
4160{
4161 fn from(value: &IoArgoprojWorkflowV1alpha1CreateS3BucketOptions) -> Self {
4162 value.clone()
4163 }
4164}
4165
4166pub use IoArgoprojWorkflowV1alpha1CronWorkflowBuilder as CronWorkflowBuilder;
4167pub use IoArgoprojWorkflowV1alpha1CronWorkflowBuilderError as CronWorkflowBuilderError;
4168
4169#[doc = "CronWorkflow is the definition of a scheduled workflow resource"]
4170#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
4171#[builder(default)]
4172pub struct IoArgoprojWorkflowV1alpha1CronWorkflow {
4173 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
4174 #[serde(
4175 rename = "apiVersion",
4176 default,
4177 skip_serializing_if = "Option::is_none"
4178 )]
4179 pub api_version: Option<String>,
4180 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
4181 #[serde(default, skip_serializing_if = "Option::is_none")]
4182 pub kind: Option<String>,
4183 pub metadata: IoK8sApimachineryPkgApisMetaV1ObjectMeta,
4184 pub spec: IoArgoprojWorkflowV1alpha1CronWorkflowSpec,
4185 #[serde(default, skip_serializing_if = "Option::is_none")]
4186 pub status: Option<IoArgoprojWorkflowV1alpha1CronWorkflowStatus>,
4187}
4188impl From<&IoArgoprojWorkflowV1alpha1CronWorkflow> for IoArgoprojWorkflowV1alpha1CronWorkflow {
4189 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflow) -> Self {
4190 value.clone()
4191 }
4192}
4193#[derive(Clone, Debug, Deserialize, Serialize)]
4194pub struct IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse(
4195 pub serde_json::Map<String, serde_json::Value>,
4196);
4197impl std::ops::Deref for IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse {
4198 type Target = serde_json::Map<String, serde_json::Value>;
4199 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
4200 &self.0
4201 }
4202}
4203impl From<IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse>
4204 for serde_json::Map<String, serde_json::Value>
4205{
4206 fn from(value: IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse) -> Self {
4207 value.0
4208 }
4209}
4210impl From<&IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse>
4211 for IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse
4212{
4213 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse) -> Self {
4214 value.clone()
4215 }
4216}
4217impl From<serde_json::Map<String, serde_json::Value>>
4218 for IoArgoprojWorkflowV1alpha1CronWorkflowDeletedResponse
4219{
4220 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
4221 Self(value)
4222 }
4223}
4224#[doc = "CronWorkflowList is list of CronWorkflow resources"]
4225#[derive(Clone, Debug, Deserialize, Serialize)]
4226pub struct IoArgoprojWorkflowV1alpha1CronWorkflowList {
4227 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
4228 #[serde(
4229 rename = "apiVersion",
4230 default,
4231 skip_serializing_if = "Option::is_none"
4232 )]
4233 pub api_version: Option<String>,
4234 pub items: Vec<IoArgoprojWorkflowV1alpha1CronWorkflow>,
4235 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
4236 #[serde(default, skip_serializing_if = "Option::is_none")]
4237 pub kind: Option<String>,
4238 pub metadata: IoK8sApimachineryPkgApisMetaV1ListMeta,
4239}
4240impl From<&IoArgoprojWorkflowV1alpha1CronWorkflowList>
4241 for IoArgoprojWorkflowV1alpha1CronWorkflowList
4242{
4243 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflowList) -> Self {
4244 value.clone()
4245 }
4246}
4247#[derive(Clone, Debug, Deserialize, Serialize)]
4248pub struct IoArgoprojWorkflowV1alpha1CronWorkflowResumeRequest {
4249 #[serde(default, skip_serializing_if = "Option::is_none")]
4250 pub name: Option<String>,
4251 #[serde(default, skip_serializing_if = "Option::is_none")]
4252 pub namespace: Option<String>,
4253}
4254impl From<&IoArgoprojWorkflowV1alpha1CronWorkflowResumeRequest>
4255 for IoArgoprojWorkflowV1alpha1CronWorkflowResumeRequest
4256{
4257 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflowResumeRequest) -> Self {
4258 value.clone()
4259 }
4260}
4261
4262pub use IoArgoprojWorkflowV1alpha1CronWorkflowSpecBuilder as CronWorkflowSpecBuilder;
4263pub use IoArgoprojWorkflowV1alpha1CronWorkflowSpecBuilderError as CronWorkflowSpecBuilderError;
4264
4265#[doc = "CronWorkflowSpec is the specification of a CronWorkflow"]
4266#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
4267#[builder(default)]
4268pub struct IoArgoprojWorkflowV1alpha1CronWorkflowSpec {
4269 #[doc = "ConcurrencyPolicy is the K8s-style concurrency policy that will be used"]
4270 #[serde(
4271 rename = "concurrencyPolicy",
4272 default,
4273 skip_serializing_if = "Option::is_none"
4274 )]
4275 pub concurrency_policy: Option<String>,
4276 #[doc = "FailedJobsHistoryLimit is the number of failed jobs to be kept at a time"]
4277 #[serde(
4278 rename = "failedJobsHistoryLimit",
4279 default,
4280 skip_serializing_if = "Option::is_none"
4281 )]
4282 pub failed_jobs_history_limit: Option<i64>,
4283 #[doc = "Schedule is a schedule to run the Workflow in Cron format"]
4284 pub schedule: String,
4285 #[doc = "StartingDeadlineSeconds is the K8s-style deadline that will limit the time a CronWorkflow will be run after its original scheduled time if it is missed."]
4286 #[serde(
4287 rename = "startingDeadlineSeconds",
4288 default,
4289 skip_serializing_if = "Option::is_none"
4290 )]
4291 pub starting_deadline_seconds: Option<i64>,
4292 #[doc = "SuccessfulJobsHistoryLimit is the number of successful jobs to be kept at a time"]
4293 #[serde(
4294 rename = "successfulJobsHistoryLimit",
4295 default,
4296 skip_serializing_if = "Option::is_none"
4297 )]
4298 pub successful_jobs_history_limit: Option<i64>,
4299 #[doc = "Suspend is a flag that will stop new CronWorkflows from running if set to true"]
4300 #[serde(default, skip_serializing_if = "Option::is_none")]
4301 pub suspend: Option<bool>,
4302 #[doc = "Timezone is the timezone against which the cron schedule will be calculated, e.g. \"Asia/Tokyo\". Default is machine's local time."]
4303 #[serde(default, skip_serializing_if = "Option::is_none")]
4304 pub timezone: Option<String>,
4305 #[doc = "WorkflowMetadata contains some metadata of the workflow to be run"]
4306 #[serde(
4307 rename = "workflowMetadata",
4308 default,
4309 skip_serializing_if = "Option::is_none"
4310 )]
4311 pub workflow_metadata: Option<IoK8sApimachineryPkgApisMetaV1ObjectMeta>,
4312 #[doc = "WorkflowSpec is the spec of the workflow to be run"]
4313 #[serde(rename = "workflowSpec")]
4314 pub workflow_spec: IoArgoprojWorkflowV1alpha1WorkflowSpec,
4315}
4316impl From<&IoArgoprojWorkflowV1alpha1CronWorkflowSpec>
4317 for IoArgoprojWorkflowV1alpha1CronWorkflowSpec
4318{
4319 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflowSpec) -> Self {
4320 value.clone()
4321 }
4322}
4323#[doc = "CronWorkflowStatus is the status of a CronWorkflow"]
4324#[derive(Clone, Debug, Deserialize, Serialize)]
4325pub struct IoArgoprojWorkflowV1alpha1CronWorkflowStatus {
4326 #[doc = "Active is a list of active workflows stemming from this CronWorkflow"]
4327 pub active: Vec<IoK8sApiCoreV1ObjectReference>,
4328 #[doc = "Conditions is a list of conditions the CronWorkflow may have"]
4329 pub conditions: Vec<IoArgoprojWorkflowV1alpha1Condition>,
4330 #[doc = "LastScheduleTime is the last time the CronWorkflow was scheduled"]
4331 #[serde(rename = "lastScheduledTime")]
4332 pub last_scheduled_time: IoK8sApimachineryPkgApisMetaV1Time,
4333}
4334impl From<&IoArgoprojWorkflowV1alpha1CronWorkflowStatus>
4335 for IoArgoprojWorkflowV1alpha1CronWorkflowStatus
4336{
4337 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflowStatus) -> Self {
4338 value.clone()
4339 }
4340}
4341#[derive(Clone, Debug, Deserialize, Serialize)]
4342pub struct IoArgoprojWorkflowV1alpha1CronWorkflowSuspendRequest {
4343 #[serde(default, skip_serializing_if = "Option::is_none")]
4344 pub name: Option<String>,
4345 #[serde(default, skip_serializing_if = "Option::is_none")]
4346 pub namespace: Option<String>,
4347}
4348impl From<&IoArgoprojWorkflowV1alpha1CronWorkflowSuspendRequest>
4349 for IoArgoprojWorkflowV1alpha1CronWorkflowSuspendRequest
4350{
4351 fn from(value: &IoArgoprojWorkflowV1alpha1CronWorkflowSuspendRequest) -> Self {
4352 value.clone()
4353 }
4354}
4355pub use IoArgoprojWorkflowV1alpha1DagTaskBuilder as DagTaskBuilder;
4356pub use IoArgoprojWorkflowV1alpha1DagTaskBuilderError as DagTaskBuilderError;
4357
4358#[doc = "DAGTask represents a node in the graph during DAG execution"]
4359#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
4360#[builder(default)]
4361pub struct IoArgoprojWorkflowV1alpha1DagTask {
4362 #[doc = "Arguments are the parameter and artifact arguments to the template"]
4363 #[serde(default, skip_serializing_if = "Option::is_none")]
4364 pub arguments: Option<IoArgoprojWorkflowV1alpha1Arguments>,
4365 #[doc = "ContinueOn makes argo to proceed with the following step even if this step fails. Errors and Failed states can be specified"]
4366 #[serde(
4367 rename = "continueOn",
4368 default,
4369 skip_serializing_if = "Option::is_none"
4370 )]
4371 pub continue_on: Option<IoArgoprojWorkflowV1alpha1ContinueOn>,
4372 #[doc = "Dependencies are name of other targets which this depends on"]
4373 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4374 pub dependencies: Vec<String>,
4375 #[doc = "Depends are name of other targets which this depends on"]
4376 #[serde(default, skip_serializing_if = "Option::is_none")]
4377 pub depends: Option<String>,
4378 #[doc = "Hooks hold the lifecycle hook which is invoked at lifecycle of task, irrespective of the success, failure, or error status of the primary task"]
4379 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
4380 pub hooks: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1LifecycleHook>,
4381 #[doc = "Inline is the template. Template must be empty if this is declared (and vice-versa)."]
4382 #[serde(default, skip_serializing_if = "Option::is_none")]
4383 pub inline: Option<IoArgoprojWorkflowV1alpha1Template>,
4384 #[doc = "Name is the name of the target"]
4385 pub name: String,
4386 #[doc = "OnExit is a template reference which is invoked at the end of the template, irrespective of the success, failure, or error of the primary template. DEPRECATED: Use Hooks[exit].Template instead."]
4387 #[serde(rename = "onExit", default, skip_serializing_if = "Option::is_none")]
4388 pub on_exit: Option<String>,
4389 #[doc = "Name of template to execute"]
4390 #[serde(default, skip_serializing_if = "Option::is_none")]
4391 pub template: Option<String>,
4392 #[doc = "TemplateRef is the reference to the template resource to execute."]
4393 #[serde(
4394 rename = "templateRef",
4395 default,
4396 skip_serializing_if = "Option::is_none"
4397 )]
4398 pub template_ref: Option<IoArgoprojWorkflowV1alpha1TemplateRef>,
4399 #[doc = "When is an expression in which the task should conditionally execute"]
4400 #[serde(default, skip_serializing_if = "Option::is_none")]
4401 pub when: Option<String>,
4402 #[doc = "WithItems expands a task into multiple parallel tasks from the items in the list"]
4403 #[serde(rename = "withItems", default, skip_serializing_if = "Vec::is_empty")]
4404 pub with_items: Vec<IoArgoprojWorkflowV1alpha1Item>,
4405 #[doc = "WithParam expands a task into multiple parallel tasks from the value in the parameter, which is expected to be a JSON list."]
4406 #[serde(rename = "withParam", default, skip_serializing_if = "Option::is_none")]
4407 pub with_param: Option<String>,
4408 #[doc = "WithSequence expands a task into a numeric sequence"]
4409 #[serde(
4410 rename = "withSequence",
4411 default,
4412 skip_serializing_if = "Option::is_none"
4413 )]
4414 pub with_sequence: Option<IoArgoprojWorkflowV1alpha1Sequence>,
4415}
4416impl From<&IoArgoprojWorkflowV1alpha1DagTask> for IoArgoprojWorkflowV1alpha1DagTask {
4417 fn from(value: &IoArgoprojWorkflowV1alpha1DagTask) -> Self {
4418 value.clone()
4419 }
4420}
4421
4422pub use IoArgoprojWorkflowV1alpha1DagTemplateBuilder as DagTemplateBuilder;
4423pub use IoArgoprojWorkflowV1alpha1DagTemplateBuilderError as DagTemplateBuilderError;
4424
4425#[doc = "DAGTemplate is a template subtype for directed acyclic graph templates"]
4426#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
4427#[builder(default)]
4428pub struct IoArgoprojWorkflowV1alpha1DagTemplate {
4429 #[doc = "This flag is for DAG logic. The DAG logic has a built-in \"fail fast\" feature to stop scheduling new steps, as soon as it detects that one of the DAG nodes is failed. Then it waits until all DAG nodes are completed before failing the DAG itself. The FailFast flag default is true, if set to false, it will allow a DAG to run all branches of the DAG to completion (either success or failure), regardless of the failed outcomes of branches in the DAG. More info and example about this feature at https://github.com/argoproj/argo-workflows/issues/1442"]
4430 #[serde(rename = "failFast", default, skip_serializing_if = "Option::is_none")]
4431 pub fail_fast: Option<bool>,
4432 #[doc = "Target are one or more names of targets to execute in a DAG"]
4433 #[serde(default, skip_serializing_if = "Option::is_none")]
4434 pub target: Option<String>,
4435 #[doc = "Tasks are a list of DAG tasks"]
4436 pub tasks: Vec<IoArgoprojWorkflowV1alpha1DagTask>,
4437}
4438impl From<&IoArgoprojWorkflowV1alpha1DagTemplate> for IoArgoprojWorkflowV1alpha1DagTemplate {
4439 fn from(value: &IoArgoprojWorkflowV1alpha1DagTemplate) -> Self {
4440 value.clone()
4441 }
4442}
4443#[doc = "Data is a data template"]
4444#[derive(Clone, Debug, Deserialize, Serialize)]
4445pub struct IoArgoprojWorkflowV1alpha1Data {
4446 #[doc = "Source sources external data into a data template"]
4447 pub source: IoArgoprojWorkflowV1alpha1DataSource,
4448 #[doc = "Transformation applies a set of transformations"]
4449 pub transformation: Vec<IoArgoprojWorkflowV1alpha1TransformationStep>,
4450}
4451impl From<&IoArgoprojWorkflowV1alpha1Data> for IoArgoprojWorkflowV1alpha1Data {
4452 fn from(value: &IoArgoprojWorkflowV1alpha1Data) -> Self {
4453 value.clone()
4454 }
4455}
4456#[doc = "DataSource sources external data into a data template"]
4457#[derive(Clone, Debug, Deserialize, Serialize)]
4458pub struct IoArgoprojWorkflowV1alpha1DataSource {
4459 #[doc = "ArtifactPaths is a data transformation that collects a list of artifact paths"]
4460 #[serde(
4461 rename = "artifactPaths",
4462 default,
4463 skip_serializing_if = "Option::is_none"
4464 )]
4465 pub artifact_paths: Option<IoArgoprojWorkflowV1alpha1ArtifactPaths>,
4466}
4467impl From<&IoArgoprojWorkflowV1alpha1DataSource> for IoArgoprojWorkflowV1alpha1DataSource {
4468 fn from(value: &IoArgoprojWorkflowV1alpha1DataSource) -> Self {
4469 value.clone()
4470 }
4471}
4472#[derive(Clone, Debug, Deserialize, Serialize)]
4473pub struct IoArgoprojWorkflowV1alpha1Event {
4474 #[doc = "Selector (https://github.com/antonmedv/expr) that we must must match the io.argoproj.workflow.v1alpha1. E.g. `payload.message == \"test\"`"]
4475 pub selector: String,
4476}
4477impl From<&IoArgoprojWorkflowV1alpha1Event> for IoArgoprojWorkflowV1alpha1Event {
4478 fn from(value: &IoArgoprojWorkflowV1alpha1Event) -> Self {
4479 value.clone()
4480 }
4481}
4482#[derive(Clone, Debug, Deserialize, Serialize)]
4483pub struct IoArgoprojWorkflowV1alpha1EventResponse(pub serde_json::Map<String, serde_json::Value>);
4484impl std::ops::Deref for IoArgoprojWorkflowV1alpha1EventResponse {
4485 type Target = serde_json::Map<String, serde_json::Value>;
4486 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
4487 &self.0
4488 }
4489}
4490impl From<IoArgoprojWorkflowV1alpha1EventResponse> for serde_json::Map<String, serde_json::Value> {
4491 fn from(value: IoArgoprojWorkflowV1alpha1EventResponse) -> Self {
4492 value.0
4493 }
4494}
4495impl From<&IoArgoprojWorkflowV1alpha1EventResponse> for IoArgoprojWorkflowV1alpha1EventResponse {
4496 fn from(value: &IoArgoprojWorkflowV1alpha1EventResponse) -> Self {
4497 value.clone()
4498 }
4499}
4500impl From<serde_json::Map<String, serde_json::Value>> for IoArgoprojWorkflowV1alpha1EventResponse {
4501 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
4502 Self(value)
4503 }
4504}
4505#[doc = "ExecutorConfig holds configurations of an executor container."]
4506#[derive(Clone, Debug, Deserialize, Serialize)]
4507pub struct IoArgoprojWorkflowV1alpha1ExecutorConfig {
4508 #[doc = "ServiceAccountName specifies the service account name of the executor container."]
4509 #[serde(
4510 rename = "serviceAccountName",
4511 default,
4512 skip_serializing_if = "Option::is_none"
4513 )]
4514 pub service_account_name: Option<String>,
4515}
4516impl From<&IoArgoprojWorkflowV1alpha1ExecutorConfig> for IoArgoprojWorkflowV1alpha1ExecutorConfig {
4517 fn from(value: &IoArgoprojWorkflowV1alpha1ExecutorConfig) -> Self {
4518 value.clone()
4519 }
4520}
4521#[doc = "Gauge is a Gauge prometheus metric"]
4522#[derive(Clone, Debug, Deserialize, Serialize)]
4523pub struct IoArgoprojWorkflowV1alpha1Gauge {
4524 #[doc = "Operation defines the operation to apply with value and the metrics' current value"]
4525 #[serde(default, skip_serializing_if = "Option::is_none")]
4526 pub operation: Option<String>,
4527 #[doc = "Realtime emits this metric in real time if applicable"]
4528 pub realtime: bool,
4529 #[doc = "Value is the value to be used in the operation with the metric's current value. If no operation is set, value is the value of the metric"]
4530 pub value: String,
4531}
4532impl From<&IoArgoprojWorkflowV1alpha1Gauge> for IoArgoprojWorkflowV1alpha1Gauge {
4533 fn from(value: &IoArgoprojWorkflowV1alpha1Gauge) -> Self {
4534 value.clone()
4535 }
4536}
4537#[doc = "GCSArtifact is the location of a GCS artifact"]
4538#[derive(Clone, Debug, Deserialize, Serialize)]
4539pub struct IoArgoprojWorkflowV1alpha1GcsArtifact {
4540 #[doc = "Bucket is the name of the bucket"]
4541 #[serde(default, skip_serializing_if = "Option::is_none")]
4542 pub bucket: Option<String>,
4543 #[doc = "Key is the path in the bucket where the artifact resides"]
4544 pub key: String,
4545 #[doc = "ServiceAccountKeySecret is the secret selector to the bucket's service account key"]
4546 #[serde(
4547 rename = "serviceAccountKeySecret",
4548 default,
4549 skip_serializing_if = "Option::is_none"
4550 )]
4551 pub service_account_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4552}
4553impl From<&IoArgoprojWorkflowV1alpha1GcsArtifact> for IoArgoprojWorkflowV1alpha1GcsArtifact {
4554 fn from(value: &IoArgoprojWorkflowV1alpha1GcsArtifact) -> Self {
4555 value.clone()
4556 }
4557}
4558#[doc = "GCSArtifactRepository defines the controller configuration for a GCS artifact repository"]
4559#[derive(Clone, Debug, Deserialize, Serialize)]
4560pub struct IoArgoprojWorkflowV1alpha1GcsArtifactRepository {
4561 #[doc = "Bucket is the name of the bucket"]
4562 #[serde(default, skip_serializing_if = "Option::is_none")]
4563 pub bucket: Option<String>,
4564 #[doc = "KeyFormat defines the format of how to store keys and can reference workflow variables."]
4565 #[serde(rename = "keyFormat", default, skip_serializing_if = "Option::is_none")]
4566 pub key_format: Option<String>,
4567 #[doc = "ServiceAccountKeySecret is the secret selector to the bucket's service account key"]
4568 #[serde(
4569 rename = "serviceAccountKeySecret",
4570 default,
4571 skip_serializing_if = "Option::is_none"
4572 )]
4573 pub service_account_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4574}
4575impl From<&IoArgoprojWorkflowV1alpha1GcsArtifactRepository>
4576 for IoArgoprojWorkflowV1alpha1GcsArtifactRepository
4577{
4578 fn from(value: &IoArgoprojWorkflowV1alpha1GcsArtifactRepository) -> Self {
4579 value.clone()
4580 }
4581}
4582#[derive(Clone, Debug, Deserialize, Serialize)]
4583pub struct IoArgoprojWorkflowV1alpha1GetUserInfoResponse {
4584 #[serde(default, skip_serializing_if = "Option::is_none")]
4585 pub email: Option<String>,
4586 #[serde(
4587 rename = "emailVerified",
4588 default,
4589 skip_serializing_if = "Option::is_none"
4590 )]
4591 pub email_verified: Option<bool>,
4592 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4593 pub groups: Vec<String>,
4594 #[serde(default, skip_serializing_if = "Option::is_none")]
4595 pub issuer: Option<String>,
4596 #[serde(default, skip_serializing_if = "Option::is_none")]
4597 pub name: Option<String>,
4598 #[serde(
4599 rename = "serviceAccountName",
4600 default,
4601 skip_serializing_if = "Option::is_none"
4602 )]
4603 pub service_account_name: Option<String>,
4604 #[serde(
4605 rename = "serviceAccountNamespace",
4606 default,
4607 skip_serializing_if = "Option::is_none"
4608 )]
4609 pub service_account_namespace: Option<String>,
4610 #[serde(default, skip_serializing_if = "Option::is_none")]
4611 pub subject: Option<String>,
4612}
4613impl From<&IoArgoprojWorkflowV1alpha1GetUserInfoResponse>
4614 for IoArgoprojWorkflowV1alpha1GetUserInfoResponse
4615{
4616 fn from(value: &IoArgoprojWorkflowV1alpha1GetUserInfoResponse) -> Self {
4617 value.clone()
4618 }
4619}
4620#[doc = "GitArtifact is the location of an git artifact"]
4621#[derive(Clone, Debug, Deserialize, Serialize)]
4622pub struct IoArgoprojWorkflowV1alpha1GitArtifact {
4623 #[doc = "Branch is the branch to fetch when `SingleBranch` is enabled"]
4624 #[serde(default, skip_serializing_if = "Option::is_none")]
4625 pub branch: Option<String>,
4626 #[doc = "Depth specifies clones/fetches should be shallow and include the given number of commits from the branch tip"]
4627 #[serde(default, skip_serializing_if = "Option::is_none")]
4628 pub depth: Option<i64>,
4629 #[doc = "DisableSubmodules disables submodules during git clone"]
4630 #[serde(
4631 rename = "disableSubmodules",
4632 default,
4633 skip_serializing_if = "Option::is_none"
4634 )]
4635 pub disable_submodules: Option<bool>,
4636 #[doc = "Fetch specifies a number of refs that should be fetched before checkout"]
4637 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4638 pub fetch: Vec<String>,
4639 #[doc = "InsecureIgnoreHostKey disables SSH strict host key checking during git clone"]
4640 #[serde(
4641 rename = "insecureIgnoreHostKey",
4642 default,
4643 skip_serializing_if = "Option::is_none"
4644 )]
4645 pub insecure_ignore_host_key: Option<bool>,
4646 #[doc = "PasswordSecret is the secret selector to the repository password"]
4647 #[serde(
4648 rename = "passwordSecret",
4649 default,
4650 skip_serializing_if = "Option::is_none"
4651 )]
4652 pub password_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4653 #[doc = "Repo is the git repository"]
4654 pub repo: String,
4655 #[doc = "Revision is the git commit, tag, branch to checkout"]
4656 #[serde(default, skip_serializing_if = "Option::is_none")]
4657 pub revision: Option<String>,
4658 #[doc = "SingleBranch enables single branch clone, using the `branch` parameter"]
4659 #[serde(
4660 rename = "singleBranch",
4661 default,
4662 skip_serializing_if = "Option::is_none"
4663 )]
4664 pub single_branch: Option<bool>,
4665 #[doc = "SSHPrivateKeySecret is the secret selector to the repository ssh private key"]
4666 #[serde(
4667 rename = "sshPrivateKeySecret",
4668 default,
4669 skip_serializing_if = "Option::is_none"
4670 )]
4671 pub ssh_private_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4672 #[doc = "UsernameSecret is the secret selector to the repository username"]
4673 #[serde(
4674 rename = "usernameSecret",
4675 default,
4676 skip_serializing_if = "Option::is_none"
4677 )]
4678 pub username_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4679}
4680impl From<&IoArgoprojWorkflowV1alpha1GitArtifact> for IoArgoprojWorkflowV1alpha1GitArtifact {
4681 fn from(value: &IoArgoprojWorkflowV1alpha1GitArtifact) -> Self {
4682 value.clone()
4683 }
4684}
4685#[doc = "HDFSArtifact is the location of an HDFS artifact"]
4686#[derive(Clone, Debug, Deserialize, Serialize)]
4687pub struct IoArgoprojWorkflowV1alpha1HdfsArtifact {
4688 #[doc = "Addresses is accessible addresses of HDFS name nodes"]
4689 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4690 pub addresses: Vec<String>,
4691 #[doc = "Force copies a file forcibly even if it exists"]
4692 #[serde(default, skip_serializing_if = "Option::is_none")]
4693 pub force: Option<bool>,
4694 #[doc = "HDFSUser is the user to access HDFS file system. It is ignored if either ccache or keytab is used."]
4695 #[serde(rename = "hdfsUser", default, skip_serializing_if = "Option::is_none")]
4696 pub hdfs_user: Option<String>,
4697 #[doc = "KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or keytab can be set to use Kerberos."]
4698 #[serde(
4699 rename = "krbCCacheSecret",
4700 default,
4701 skip_serializing_if = "Option::is_none"
4702 )]
4703 pub krb_c_cache_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4704 #[doc = "KrbConfig is the configmap selector for Kerberos config as string It must be set if either ccache or keytab is used."]
4705 #[serde(
4706 rename = "krbConfigConfigMap",
4707 default,
4708 skip_serializing_if = "Option::is_none"
4709 )]
4710 pub krb_config_config_map: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
4711 #[doc = "KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or keytab can be set to use Kerberos."]
4712 #[serde(
4713 rename = "krbKeytabSecret",
4714 default,
4715 skip_serializing_if = "Option::is_none"
4716 )]
4717 pub krb_keytab_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4718 #[doc = "KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used."]
4719 #[serde(rename = "krbRealm", default, skip_serializing_if = "Option::is_none")]
4720 pub krb_realm: Option<String>,
4721 #[doc = "KrbServicePrincipalName is the principal name of Kerberos service It must be set if either ccache or keytab is used."]
4722 #[serde(
4723 rename = "krbServicePrincipalName",
4724 default,
4725 skip_serializing_if = "Option::is_none"
4726 )]
4727 pub krb_service_principal_name: Option<String>,
4728 #[doc = "KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used."]
4729 #[serde(
4730 rename = "krbUsername",
4731 default,
4732 skip_serializing_if = "Option::is_none"
4733 )]
4734 pub krb_username: Option<String>,
4735 #[doc = "Path is a file path in HDFS"]
4736 pub path: String,
4737}
4738impl From<&IoArgoprojWorkflowV1alpha1HdfsArtifact> for IoArgoprojWorkflowV1alpha1HdfsArtifact {
4739 fn from(value: &IoArgoprojWorkflowV1alpha1HdfsArtifact) -> Self {
4740 value.clone()
4741 }
4742}
4743#[doc = "HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository"]
4744#[derive(Clone, Debug, Deserialize, Serialize)]
4745pub struct IoArgoprojWorkflowV1alpha1HdfsArtifactRepository {
4746 #[doc = "Addresses is accessible addresses of HDFS name nodes"]
4747 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4748 pub addresses: Vec<String>,
4749 #[doc = "Force copies a file forcibly even if it exists"]
4750 #[serde(default, skip_serializing_if = "Option::is_none")]
4751 pub force: Option<bool>,
4752 #[doc = "HDFSUser is the user to access HDFS file system. It is ignored if either ccache or keytab is used."]
4753 #[serde(rename = "hdfsUser", default, skip_serializing_if = "Option::is_none")]
4754 pub hdfs_user: Option<String>,
4755 #[doc = "KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or keytab can be set to use Kerberos."]
4756 #[serde(
4757 rename = "krbCCacheSecret",
4758 default,
4759 skip_serializing_if = "Option::is_none"
4760 )]
4761 pub krb_c_cache_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4762 #[doc = "KrbConfig is the configmap selector for Kerberos config as string It must be set if either ccache or keytab is used."]
4763 #[serde(
4764 rename = "krbConfigConfigMap",
4765 default,
4766 skip_serializing_if = "Option::is_none"
4767 )]
4768 pub krb_config_config_map: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
4769 #[doc = "KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or keytab can be set to use Kerberos."]
4770 #[serde(
4771 rename = "krbKeytabSecret",
4772 default,
4773 skip_serializing_if = "Option::is_none"
4774 )]
4775 pub krb_keytab_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
4776 #[doc = "KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used."]
4777 #[serde(rename = "krbRealm", default, skip_serializing_if = "Option::is_none")]
4778 pub krb_realm: Option<String>,
4779 #[doc = "KrbServicePrincipalName is the principal name of Kerberos service It must be set if either ccache or keytab is used."]
4780 #[serde(
4781 rename = "krbServicePrincipalName",
4782 default,
4783 skip_serializing_if = "Option::is_none"
4784 )]
4785 pub krb_service_principal_name: Option<String>,
4786 #[doc = "KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used."]
4787 #[serde(
4788 rename = "krbUsername",
4789 default,
4790 skip_serializing_if = "Option::is_none"
4791 )]
4792 pub krb_username: Option<String>,
4793 #[doc = "PathFormat is defines the format of path to store a file. Can reference workflow variables"]
4794 #[serde(
4795 rename = "pathFormat",
4796 default,
4797 skip_serializing_if = "Option::is_none"
4798 )]
4799 pub path_format: Option<String>,
4800}
4801impl From<&IoArgoprojWorkflowV1alpha1HdfsArtifactRepository>
4802 for IoArgoprojWorkflowV1alpha1HdfsArtifactRepository
4803{
4804 fn from(value: &IoArgoprojWorkflowV1alpha1HdfsArtifactRepository) -> Self {
4805 value.clone()
4806 }
4807}
4808#[doc = "Header indicate a key-value request header to be used when fetching artifacts over HTTP"]
4809#[derive(Clone, Debug, Deserialize, Serialize)]
4810pub struct IoArgoprojWorkflowV1alpha1Header {
4811 #[doc = "Name is the header name"]
4812 pub name: String,
4813 #[doc = "Value is the literal value to use for the header"]
4814 pub value: String,
4815}
4816impl From<&IoArgoprojWorkflowV1alpha1Header> for IoArgoprojWorkflowV1alpha1Header {
4817 fn from(value: &IoArgoprojWorkflowV1alpha1Header) -> Self {
4818 value.clone()
4819 }
4820}
4821#[doc = "Histogram is a Histogram prometheus metric"]
4822#[derive(Clone, Debug, Deserialize, Serialize)]
4823pub struct IoArgoprojWorkflowV1alpha1Histogram {
4824 #[doc = "Buckets is a list of bucket divisors for the histogram"]
4825 pub buckets: Vec<IoArgoprojWorkflowV1alpha1Amount>,
4826 #[doc = "Value is the value of the metric"]
4827 pub value: String,
4828}
4829impl From<&IoArgoprojWorkflowV1alpha1Histogram> for IoArgoprojWorkflowV1alpha1Histogram {
4830 fn from(value: &IoArgoprojWorkflowV1alpha1Histogram) -> Self {
4831 value.clone()
4832 }
4833}
4834#[derive(Clone, Debug, Deserialize, Serialize)]
4835pub struct IoArgoprojWorkflowV1alpha1Http {
4836 #[doc = "Body is content of the HTTP Request"]
4837 #[serde(default, skip_serializing_if = "Option::is_none")]
4838 pub body: Option<String>,
4839 #[doc = "BodyFrom is content of the HTTP Request as Bytes"]
4840 #[serde(rename = "bodyFrom", default, skip_serializing_if = "Option::is_none")]
4841 pub body_from: Option<IoArgoprojWorkflowV1alpha1HttpBodySource>,
4842 #[doc = "Headers are an optional list of headers to send with HTTP requests"]
4843 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4844 pub headers: Vec<IoArgoprojWorkflowV1alpha1HttpHeader>,
4845 #[doc = "InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client"]
4846 #[serde(
4847 rename = "insecureSkipVerify",
4848 default,
4849 skip_serializing_if = "Option::is_none"
4850 )]
4851 pub insecure_skip_verify: Option<bool>,
4852 #[doc = "Method is HTTP methods for HTTP Request"]
4853 #[serde(default, skip_serializing_if = "Option::is_none")]
4854 pub method: Option<String>,
4855 #[doc = "SuccessCondition is an expression if evaluated to true is considered successful"]
4856 #[serde(
4857 rename = "successCondition",
4858 default,
4859 skip_serializing_if = "Option::is_none"
4860 )]
4861 pub success_condition: Option<String>,
4862 #[doc = "TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds"]
4863 #[serde(
4864 rename = "timeoutSeconds",
4865 default,
4866 skip_serializing_if = "Option::is_none"
4867 )]
4868 pub timeout_seconds: Option<i64>,
4869 #[doc = "URL of the HTTP Request"]
4870 pub url: String,
4871}
4872impl From<&IoArgoprojWorkflowV1alpha1Http> for IoArgoprojWorkflowV1alpha1Http {
4873 fn from(value: &IoArgoprojWorkflowV1alpha1Http) -> Self {
4874 value.clone()
4875 }
4876}
4877#[doc = "HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container"]
4878#[derive(Clone, Debug, Deserialize, Serialize)]
4879pub struct IoArgoprojWorkflowV1alpha1HttpArtifact {
4880 #[doc = "Auth contains information for client authentication"]
4881 #[serde(default, skip_serializing_if = "Option::is_none")]
4882 pub auth: Option<IoArgoprojWorkflowV1alpha1HttpAuth>,
4883 #[doc = "Headers are an optional list of headers to send with HTTP requests for artifacts"]
4884 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4885 pub headers: Vec<IoArgoprojWorkflowV1alpha1Header>,
4886 #[doc = "URL of the artifact"]
4887 pub url: String,
4888}
4889impl From<&IoArgoprojWorkflowV1alpha1HttpArtifact> for IoArgoprojWorkflowV1alpha1HttpArtifact {
4890 fn from(value: &IoArgoprojWorkflowV1alpha1HttpArtifact) -> Self {
4891 value.clone()
4892 }
4893}
4894#[derive(Clone, Debug, Deserialize, Serialize)]
4895pub struct IoArgoprojWorkflowV1alpha1HttpAuth {
4896 #[serde(rename = "basicAuth", default, skip_serializing_if = "Option::is_none")]
4897 pub basic_auth: Option<IoArgoprojWorkflowV1alpha1BasicAuth>,
4898 #[serde(
4899 rename = "clientCert",
4900 default,
4901 skip_serializing_if = "Option::is_none"
4902 )]
4903 pub client_cert: Option<IoArgoprojWorkflowV1alpha1ClientCertAuth>,
4904 #[serde(default, skip_serializing_if = "Option::is_none")]
4905 pub oauth2: Option<IoArgoprojWorkflowV1alpha1OAuth2Auth>,
4906}
4907impl From<&IoArgoprojWorkflowV1alpha1HttpAuth> for IoArgoprojWorkflowV1alpha1HttpAuth {
4908 fn from(value: &IoArgoprojWorkflowV1alpha1HttpAuth) -> Self {
4909 value.clone()
4910 }
4911}
4912#[doc = "HTTPBodySource contains the source of the HTTP body."]
4913#[derive(Clone, Debug, Deserialize, Serialize)]
4914pub struct IoArgoprojWorkflowV1alpha1HttpBodySource {
4915 #[serde(default, skip_serializing_if = "Option::is_none")]
4916 pub bytes: Option<String>,
4917}
4918impl From<&IoArgoprojWorkflowV1alpha1HttpBodySource> for IoArgoprojWorkflowV1alpha1HttpBodySource {
4919 fn from(value: &IoArgoprojWorkflowV1alpha1HttpBodySource) -> Self {
4920 value.clone()
4921 }
4922}
4923#[derive(Clone, Debug, Deserialize, Serialize)]
4924pub struct IoArgoprojWorkflowV1alpha1HttpHeader {
4925 pub name: String,
4926 #[serde(default, skip_serializing_if = "Option::is_none")]
4927 pub value: Option<String>,
4928 #[serde(rename = "valueFrom", default, skip_serializing_if = "Option::is_none")]
4929 pub value_from: Option<IoArgoprojWorkflowV1alpha1HttpHeaderSource>,
4930}
4931impl From<&IoArgoprojWorkflowV1alpha1HttpHeader> for IoArgoprojWorkflowV1alpha1HttpHeader {
4932 fn from(value: &IoArgoprojWorkflowV1alpha1HttpHeader) -> Self {
4933 value.clone()
4934 }
4935}
4936#[derive(Clone, Debug, Deserialize, Serialize)]
4937pub struct IoArgoprojWorkflowV1alpha1HttpHeaderSource {
4938 #[serde(
4939 rename = "secretKeyRef",
4940 default,
4941 skip_serializing_if = "Option::is_none"
4942 )]
4943 pub secret_key_ref: Option<IoK8sApiCoreV1SecretKeySelector>,
4944}
4945impl From<&IoArgoprojWorkflowV1alpha1HttpHeaderSource>
4946 for IoArgoprojWorkflowV1alpha1HttpHeaderSource
4947{
4948 fn from(value: &IoArgoprojWorkflowV1alpha1HttpHeaderSource) -> Self {
4949 value.clone()
4950 }
4951}
4952#[derive(Clone, Debug, Deserialize, Serialize)]
4953pub struct IoArgoprojWorkflowV1alpha1InfoResponse {
4954 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4955 pub columns: Vec<IoArgoprojWorkflowV1alpha1Column>,
4956 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4957 pub links: Vec<IoArgoprojWorkflowV1alpha1Link>,
4958 #[serde(
4959 rename = "managedNamespace",
4960 default,
4961 skip_serializing_if = "Option::is_none"
4962 )]
4963 pub managed_namespace: Option<String>,
4964 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
4965 pub modals: std::collections::HashMap<String, bool>,
4966 #[serde(rename = "navColor", default, skip_serializing_if = "Option::is_none")]
4967 pub nav_color: Option<String>,
4968}
4969impl From<&IoArgoprojWorkflowV1alpha1InfoResponse> for IoArgoprojWorkflowV1alpha1InfoResponse {
4970 fn from(value: &IoArgoprojWorkflowV1alpha1InfoResponse) -> Self {
4971 value.clone()
4972 }
4973}
4974
4975pub use IoArgoprojWorkflowV1alpha1InputsBuilder as InputsBuilder;
4976pub use IoArgoprojWorkflowV1alpha1InputsBuilderError as InputsBuilderError;
4977#[doc = "Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another"]
4978#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
4979pub struct IoArgoprojWorkflowV1alpha1Inputs {
4980 #[builder(default)]
4981 #[doc = "Artifact are a list of artifacts passed as inputs"]
4982 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4983 pub artifacts: Vec<IoArgoprojWorkflowV1alpha1Artifact>,
4984 #[doc = "Parameters are a list of parameters passed as inputs"]
4985 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4986 pub parameters: Vec<IoArgoprojWorkflowV1alpha1Parameter>,
4987}
4988impl From<&IoArgoprojWorkflowV1alpha1Inputs> for IoArgoprojWorkflowV1alpha1Inputs {
4989 fn from(value: &IoArgoprojWorkflowV1alpha1Inputs) -> Self {
4990 value.clone()
4991 }
4992}
4993#[doc = "Item expands a single workflow step into multiple parallel steps The value of Item can be a map, string, bool, or number"]
4994#[derive(Clone, Debug, Deserialize, Serialize)]
4995pub struct IoArgoprojWorkflowV1alpha1Item(pub serde_json::Value);
4996impl std::ops::Deref for IoArgoprojWorkflowV1alpha1Item {
4997 type Target = serde_json::Value;
4998 fn deref(&self) -> &serde_json::Value {
4999 &self.0
5000 }
5001}
5002impl From<IoArgoprojWorkflowV1alpha1Item> for serde_json::Value {
5003 fn from(value: IoArgoprojWorkflowV1alpha1Item) -> Self {
5004 value.0
5005 }
5006}
5007impl From<&IoArgoprojWorkflowV1alpha1Item> for IoArgoprojWorkflowV1alpha1Item {
5008 fn from(value: &IoArgoprojWorkflowV1alpha1Item) -> Self {
5009 value.clone()
5010 }
5011}
5012impl From<serde_json::Value> for IoArgoprojWorkflowV1alpha1Item {
5013 fn from(value: serde_json::Value) -> Self {
5014 Self(value)
5015 }
5016}
5017#[doc = "LabelKeys is list of keys"]
5018#[derive(Clone, Debug, Deserialize, Serialize)]
5019pub struct IoArgoprojWorkflowV1alpha1LabelKeys {
5020 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5021 pub items: Vec<String>,
5022}
5023impl From<&IoArgoprojWorkflowV1alpha1LabelKeys> for IoArgoprojWorkflowV1alpha1LabelKeys {
5024 fn from(value: &IoArgoprojWorkflowV1alpha1LabelKeys) -> Self {
5025 value.clone()
5026 }
5027}
5028#[derive(Clone, Debug, Deserialize, Serialize)]
5029pub struct IoArgoprojWorkflowV1alpha1LabelValueFrom {
5030 pub expression: String,
5031}
5032impl From<&IoArgoprojWorkflowV1alpha1LabelValueFrom> for IoArgoprojWorkflowV1alpha1LabelValueFrom {
5033 fn from(value: &IoArgoprojWorkflowV1alpha1LabelValueFrom) -> Self {
5034 value.clone()
5035 }
5036}
5037#[doc = "Labels is list of workflow labels"]
5038#[derive(Clone, Debug, Deserialize, Serialize)]
5039pub struct IoArgoprojWorkflowV1alpha1LabelValues {
5040 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5041 pub items: Vec<String>,
5042}
5043impl From<&IoArgoprojWorkflowV1alpha1LabelValues> for IoArgoprojWorkflowV1alpha1LabelValues {
5044 fn from(value: &IoArgoprojWorkflowV1alpha1LabelValues) -> Self {
5045 value.clone()
5046 }
5047}
5048#[derive(Clone, Debug, Deserialize, Serialize)]
5049pub struct IoArgoprojWorkflowV1alpha1LifecycleHook {
5050 #[doc = "Arguments hold arguments to the template"]
5051 #[serde(default, skip_serializing_if = "Option::is_none")]
5052 pub arguments: Option<IoArgoprojWorkflowV1alpha1Arguments>,
5053 #[doc = "Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not be retried and the retry strategy will be ignored"]
5054 #[serde(default, skip_serializing_if = "Option::is_none")]
5055 pub expression: Option<String>,
5056 #[doc = "Template is the name of the template to execute by the hook"]
5057 #[serde(default, skip_serializing_if = "Option::is_none")]
5058 pub template: Option<String>,
5059 #[doc = "TemplateRef is the reference to the template resource to execute by the hook"]
5060 #[serde(
5061 rename = "templateRef",
5062 default,
5063 skip_serializing_if = "Option::is_none"
5064 )]
5065 pub template_ref: Option<IoArgoprojWorkflowV1alpha1TemplateRef>,
5066}
5067impl From<&IoArgoprojWorkflowV1alpha1LifecycleHook> for IoArgoprojWorkflowV1alpha1LifecycleHook {
5068 fn from(value: &IoArgoprojWorkflowV1alpha1LifecycleHook) -> Self {
5069 value.clone()
5070 }
5071}
5072#[doc = "A link to another app."]
5073#[derive(Clone, Debug, Deserialize, Serialize)]
5074pub struct IoArgoprojWorkflowV1alpha1Link {
5075 #[doc = "The name of the link, E.g. \"Workflow Logs\" or \"Pod Logs\""]
5076 pub name: String,
5077 #[doc = "\"workflow\", \"pod\", \"pod-logs\", \"event-source-logs\", \"sensor-logs\", \"workflow-list\" or \"chat\""]
5078 pub scope: String,
5079 #[doc = "The URL. Can contain \"${metadata.namespace}\", \"${metadata.name}\", \"${status.startedAt}\", \"${status.finishedAt}\" or any other element in workflow yaml, e.g. \"${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}\""]
5080 pub url: String,
5081}
5082impl From<&IoArgoprojWorkflowV1alpha1Link> for IoArgoprojWorkflowV1alpha1Link {
5083 fn from(value: &IoArgoprojWorkflowV1alpha1Link) -> Self {
5084 value.clone()
5085 }
5086}
5087#[derive(Clone, Debug, Deserialize, Serialize)]
5088pub struct IoArgoprojWorkflowV1alpha1LintCronWorkflowRequest {
5089 #[serde(
5090 rename = "cronWorkflow",
5091 default,
5092 skip_serializing_if = "Option::is_none"
5093 )]
5094 pub cron_workflow: Option<IoArgoprojWorkflowV1alpha1CronWorkflow>,
5095 #[serde(default, skip_serializing_if = "Option::is_none")]
5096 pub namespace: Option<String>,
5097}
5098impl From<&IoArgoprojWorkflowV1alpha1LintCronWorkflowRequest>
5099 for IoArgoprojWorkflowV1alpha1LintCronWorkflowRequest
5100{
5101 fn from(value: &IoArgoprojWorkflowV1alpha1LintCronWorkflowRequest) -> Self {
5102 value.clone()
5103 }
5104}
5105#[derive(Clone, Debug, Deserialize, Serialize)]
5106pub struct IoArgoprojWorkflowV1alpha1LogEntry {
5107 #[serde(default, skip_serializing_if = "Option::is_none")]
5108 pub content: Option<String>,
5109 #[serde(rename = "podName", default, skip_serializing_if = "Option::is_none")]
5110 pub pod_name: Option<String>,
5111}
5112impl From<&IoArgoprojWorkflowV1alpha1LogEntry> for IoArgoprojWorkflowV1alpha1LogEntry {
5113 fn from(value: &IoArgoprojWorkflowV1alpha1LogEntry) -> Self {
5114 value.clone()
5115 }
5116}
5117#[derive(Clone, Debug, Deserialize, Serialize)]
5118pub struct IoArgoprojWorkflowV1alpha1ManifestFrom {
5119 #[doc = "Artifact contains the artifact to use"]
5120 pub artifact: IoArgoprojWorkflowV1alpha1Artifact,
5121}
5122impl From<&IoArgoprojWorkflowV1alpha1ManifestFrom> for IoArgoprojWorkflowV1alpha1ManifestFrom {
5123 fn from(value: &IoArgoprojWorkflowV1alpha1ManifestFrom) -> Self {
5124 value.clone()
5125 }
5126}
5127#[doc = "MemoizationStatus is the status of this memoized node"]
5128#[derive(Clone, Debug, Deserialize, Serialize)]
5129pub struct IoArgoprojWorkflowV1alpha1MemoizationStatus {
5130 #[doc = "Cache is the name of the cache that was used"]
5131 #[serde(rename = "cacheName")]
5132 pub cache_name: String,
5133 #[doc = "Hit indicates whether this node was created from a cache entry"]
5134 pub hit: bool,
5135 #[doc = "Key is the name of the key used for this node's cache"]
5136 pub key: String,
5137}
5138impl From<&IoArgoprojWorkflowV1alpha1MemoizationStatus>
5139 for IoArgoprojWorkflowV1alpha1MemoizationStatus
5140{
5141 fn from(value: &IoArgoprojWorkflowV1alpha1MemoizationStatus) -> Self {
5142 value.clone()
5143 }
5144}
5145#[doc = "Memoization enables caching for the Outputs of the template"]
5146#[derive(Clone, Debug, Deserialize, Serialize)]
5147pub struct IoArgoprojWorkflowV1alpha1Memoize {
5148 #[doc = "Cache sets and configures the kind of cache"]
5149 pub cache: IoArgoprojWorkflowV1alpha1Cache,
5150 #[doc = "Key is the key to use as the caching key"]
5151 pub key: String,
5152 #[doc = "MaxAge is the maximum age (e.g. \"180s\", \"24h\") of an entry that is still considered valid. If an entry is older than the MaxAge, it will be ignored."]
5153 #[serde(rename = "maxAge")]
5154 pub max_age: String,
5155}
5156impl From<&IoArgoprojWorkflowV1alpha1Memoize> for IoArgoprojWorkflowV1alpha1Memoize {
5157 fn from(value: &IoArgoprojWorkflowV1alpha1Memoize) -> Self {
5158 value.clone()
5159 }
5160}
5161#[doc = "Pod metdata"]
5162#[derive(Clone, Debug, Deserialize, Serialize)]
5163pub struct IoArgoprojWorkflowV1alpha1Metadata {
5164 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
5165 pub annotations: std::collections::HashMap<String, String>,
5166 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
5167 pub labels: std::collections::HashMap<String, String>,
5168}
5169impl From<&IoArgoprojWorkflowV1alpha1Metadata> for IoArgoprojWorkflowV1alpha1Metadata {
5170 fn from(value: &IoArgoprojWorkflowV1alpha1Metadata) -> Self {
5171 value.clone()
5172 }
5173}
5174#[doc = "MetricLabel is a single label for a prometheus metric"]
5175#[derive(Clone, Debug, Deserialize, Serialize)]
5176pub struct IoArgoprojWorkflowV1alpha1MetricLabel {
5177 pub key: String,
5178 pub value: String,
5179}
5180impl From<&IoArgoprojWorkflowV1alpha1MetricLabel> for IoArgoprojWorkflowV1alpha1MetricLabel {
5181 fn from(value: &IoArgoprojWorkflowV1alpha1MetricLabel) -> Self {
5182 value.clone()
5183 }
5184}
5185#[doc = "Metrics are a list of metrics emitted from a Workflow/Template"]
5186#[derive(Clone, Debug, Deserialize, Serialize)]
5187pub struct IoArgoprojWorkflowV1alpha1Metrics {
5188 #[doc = "Prometheus is a list of prometheus metrics to be emitted"]
5189 pub prometheus: Vec<IoArgoprojWorkflowV1alpha1Prometheus>,
5190}
5191impl From<&IoArgoprojWorkflowV1alpha1Metrics> for IoArgoprojWorkflowV1alpha1Metrics {
5192 fn from(value: &IoArgoprojWorkflowV1alpha1Metrics) -> Self {
5193 value.clone()
5194 }
5195}
5196#[doc = "Mutex holds Mutex configuration"]
5197#[derive(Clone, Debug, Deserialize, Serialize)]
5198pub struct IoArgoprojWorkflowV1alpha1Mutex {
5199 #[doc = "name of the mutex"]
5200 #[serde(default, skip_serializing_if = "Option::is_none")]
5201 pub name: Option<String>,
5202 #[doc = "Namespace is the namespace of the mutex, default: [namespace of workflow]"]
5203 #[serde(default, skip_serializing_if = "Option::is_none")]
5204 pub namespace: Option<String>,
5205}
5206impl From<&IoArgoprojWorkflowV1alpha1Mutex> for IoArgoprojWorkflowV1alpha1Mutex {
5207 fn from(value: &IoArgoprojWorkflowV1alpha1Mutex) -> Self {
5208 value.clone()
5209 }
5210}
5211#[doc = "MutexHolding describes the mutex and the object which is holding it."]
5212#[derive(Clone, Debug, Deserialize, Serialize)]
5213pub struct IoArgoprojWorkflowV1alpha1MutexHolding {
5214 #[doc = "Holder is a reference to the object which holds the Mutex. Holding Scenario:\n 1. Current workflow's NodeID which is holding the lock.\n e.g: ${NodeID}\nWaiting Scenario:\n 1. Current workflow or other workflow NodeID which is holding the lock.\n e.g: ${WorkflowName}/${NodeID}"]
5215 #[serde(default, skip_serializing_if = "Option::is_none")]
5216 pub holder: Option<String>,
5217 #[doc = "Reference for the mutex e.g: ${namespace}/mutex/${mutexName}"]
5218 #[serde(default, skip_serializing_if = "Option::is_none")]
5219 pub mutex: Option<String>,
5220}
5221impl From<&IoArgoprojWorkflowV1alpha1MutexHolding> for IoArgoprojWorkflowV1alpha1MutexHolding {
5222 fn from(value: &IoArgoprojWorkflowV1alpha1MutexHolding) -> Self {
5223 value.clone()
5224 }
5225}
5226#[doc = "MutexStatus contains which objects hold mutex locks, and which objects this workflow is waiting on to release locks."]
5227#[derive(Clone, Debug, Deserialize, Serialize)]
5228pub struct IoArgoprojWorkflowV1alpha1MutexStatus {
5229 #[doc = "Holding is a list of mutexes and their respective objects that are held by mutex lock for this io.argoproj.workflow.v1alpha1."]
5230 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5231 pub holding: Vec<IoArgoprojWorkflowV1alpha1MutexHolding>,
5232 #[doc = "Waiting is a list of mutexes and their respective objects this workflow is waiting for."]
5233 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5234 pub waiting: Vec<IoArgoprojWorkflowV1alpha1MutexHolding>,
5235}
5236impl From<&IoArgoprojWorkflowV1alpha1MutexStatus> for IoArgoprojWorkflowV1alpha1MutexStatus {
5237 fn from(value: &IoArgoprojWorkflowV1alpha1MutexStatus) -> Self {
5238 value.clone()
5239 }
5240}
5241#[derive(Clone, Debug, Deserialize, Serialize)]
5242pub struct IoArgoprojWorkflowV1alpha1NodeResult {
5243 #[serde(default, skip_serializing_if = "Option::is_none")]
5244 pub message: Option<String>,
5245 #[serde(default, skip_serializing_if = "Option::is_none")]
5246 pub outputs: Option<IoArgoprojWorkflowV1alpha1Outputs>,
5247 #[serde(default, skip_serializing_if = "Option::is_none")]
5248 pub phase: Option<String>,
5249 #[serde(default, skip_serializing_if = "Option::is_none")]
5250 pub progress: Option<String>,
5251}
5252impl From<&IoArgoprojWorkflowV1alpha1NodeResult> for IoArgoprojWorkflowV1alpha1NodeResult {
5253 fn from(value: &IoArgoprojWorkflowV1alpha1NodeResult) -> Self {
5254 value.clone()
5255 }
5256}
5257#[doc = "NodeStatus contains status information about an individual node in the workflow"]
5258#[derive(Clone, Debug, Deserialize, Serialize)]
5259pub struct IoArgoprojWorkflowV1alpha1NodeStatus {
5260 #[doc = "BoundaryID indicates the node ID of the associated template root node in which this node belongs to"]
5261 #[serde(
5262 rename = "boundaryID",
5263 default,
5264 skip_serializing_if = "Option::is_none"
5265 )]
5266 pub boundary_id: Option<String>,
5267 #[doc = "Children is a list of child node IDs"]
5268 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5269 pub children: Vec<String>,
5270 #[doc = "Daemoned tracks whether or not this node was daemoned and need to be terminated"]
5271 #[serde(default, skip_serializing_if = "Option::is_none")]
5272 pub daemoned: Option<bool>,
5273 #[doc = "DisplayName is a human readable representation of the node. Unique within a template boundary"]
5274 #[serde(
5275 rename = "displayName",
5276 default,
5277 skip_serializing_if = "Option::is_none"
5278 )]
5279 pub display_name: Option<String>,
5280 #[doc = "EstimatedDuration in seconds."]
5281 #[serde(
5282 rename = "estimatedDuration",
5283 default,
5284 skip_serializing_if = "Option::is_none"
5285 )]
5286 pub estimated_duration: Option<i64>,
5287 #[doc = "Time at which this node completed"]
5288 #[serde(
5289 rename = "finishedAt",
5290 default,
5291 skip_serializing_if = "Option::is_none"
5292 )]
5293 pub finished_at: Option<IoK8sApimachineryPkgApisMetaV1Time>,
5294 #[doc = "HostNodeName name of the Kubernetes node on which the Pod is running, if applicable"]
5295 #[serde(
5296 rename = "hostNodeName",
5297 default,
5298 skip_serializing_if = "Option::is_none"
5299 )]
5300 pub host_node_name: Option<String>,
5301 #[doc = "ID is a unique identifier of a node within the worklow It is implemented as a hash of the node name, which makes the ID deterministic"]
5302 pub id: String,
5303 #[doc = "Inputs captures input parameter values and artifact locations supplied to this template invocation"]
5304 #[serde(default, skip_serializing_if = "Option::is_none")]
5305 pub inputs: Option<IoArgoprojWorkflowV1alpha1Inputs>,
5306 #[doc = "MemoizationStatus holds information about cached nodes"]
5307 #[serde(
5308 rename = "memoizationStatus",
5309 default,
5310 skip_serializing_if = "Option::is_none"
5311 )]
5312 pub memoization_status: Option<IoArgoprojWorkflowV1alpha1MemoizationStatus>,
5313 #[doc = "A human readable message indicating details about why the node is in this condition."]
5314 #[serde(default, skip_serializing_if = "Option::is_none")]
5315 pub message: Option<String>,
5316 #[doc = "Name is unique name in the node tree used to generate the node ID"]
5317 pub name: String,
5318 #[doc = "OutboundNodes tracks the node IDs which are considered \"outbound\" nodes to a template invocation. For every invocation of a template, there are nodes which we considered as \"outbound\". Essentially, these are last nodes in the execution sequence to run, before the template is considered completed. These nodes are then connected as parents to a following step.\n\nIn the case of single pod steps (i.e. container, script, resource templates), this list will be nil since the pod itself is already considered the \"outbound\" node. In the case of DAGs, outbound nodes are the \"target\" tasks (tasks with no children). In the case of steps, outbound nodes are all the containers involved in the last step group. NOTE: since templates are composable, the list of outbound nodes are carried upwards when a DAG/steps template invokes another DAG/steps template. In other words, the outbound nodes of a template, will be a superset of the outbound nodes of its last children."]
5319 #[serde(
5320 rename = "outboundNodes",
5321 default,
5322 skip_serializing_if = "Vec::is_empty"
5323 )]
5324 pub outbound_nodes: Vec<String>,
5325 #[doc = "Outputs captures output parameter values and artifact locations produced by this template invocation"]
5326 #[serde(default, skip_serializing_if = "Option::is_none")]
5327 pub outputs: Option<IoArgoprojWorkflowV1alpha1Outputs>,
5328 #[doc = "Phase a simple, high-level summary of where the node is in its lifecycle. Can be used as a state machine. Will be one of these values \"Pending\", \"Running\" before the node is completed, or \"Succeeded\", \"Skipped\", \"Failed\", \"Error\", or \"Omitted\" as a final state."]
5329 #[serde(default, skip_serializing_if = "Option::is_none")]
5330 pub phase: Option<String>,
5331 #[doc = "PodIP captures the IP of the pod for daemoned steps"]
5332 #[serde(rename = "podIP", default, skip_serializing_if = "Option::is_none")]
5333 pub pod_ip: Option<String>,
5334 #[doc = "Progress to completion"]
5335 #[serde(default, skip_serializing_if = "Option::is_none")]
5336 pub progress: Option<String>,
5337 #[doc = "ResourcesDuration is indicative, but not accurate, resource duration. This is populated when the nodes completes."]
5338 #[serde(
5339 rename = "resourcesDuration",
5340 default,
5341 skip_serializing_if = "std::collections::HashMap::is_empty"
5342 )]
5343 pub resources_duration: std::collections::HashMap<String, i64>,
5344 #[doc = "Time at which this node started"]
5345 #[serde(rename = "startedAt", default, skip_serializing_if = "Option::is_none")]
5346 pub started_at: Option<IoK8sApimachineryPkgApisMetaV1Time>,
5347 #[doc = "SynchronizationStatus is the synchronization status of the node"]
5348 #[serde(
5349 rename = "synchronizationStatus",
5350 default,
5351 skip_serializing_if = "Option::is_none"
5352 )]
5353 pub synchronization_status: Option<IoArgoprojWorkflowV1alpha1NodeSynchronizationStatus>,
5354 #[doc = "TemplateName is the template name which this node corresponds to. Not applicable to virtual nodes (e.g. Retry, StepGroup)"]
5355 #[serde(
5356 rename = "templateName",
5357 default,
5358 skip_serializing_if = "Option::is_none"
5359 )]
5360 pub template_name: Option<String>,
5361 #[doc = "TemplateRef is the reference to the template resource which this node corresponds to. Not applicable to virtual nodes (e.g. Retry, StepGroup)"]
5362 #[serde(
5363 rename = "templateRef",
5364 default,
5365 skip_serializing_if = "Option::is_none"
5366 )]
5367 pub template_ref: Option<IoArgoprojWorkflowV1alpha1TemplateRef>,
5368 #[doc = "TemplateScope is the template scope in which the template of this node was retrieved."]
5369 #[serde(
5370 rename = "templateScope",
5371 default,
5372 skip_serializing_if = "Option::is_none"
5373 )]
5374 pub template_scope: Option<String>,
5375 #[doc = "Type indicates type of node"]
5376 #[serde(rename = "type")]
5377 pub type_: String,
5378}
5379impl From<&IoArgoprojWorkflowV1alpha1NodeStatus> for IoArgoprojWorkflowV1alpha1NodeStatus {
5380 fn from(value: &IoArgoprojWorkflowV1alpha1NodeStatus) -> Self {
5381 value.clone()
5382 }
5383}
5384#[doc = "NodeSynchronizationStatus stores the status of a node"]
5385#[derive(Clone, Debug, Deserialize, Serialize)]
5386pub struct IoArgoprojWorkflowV1alpha1NodeSynchronizationStatus {
5387 #[doc = "Waiting is the name of the lock that this node is waiting for"]
5388 #[serde(default, skip_serializing_if = "Option::is_none")]
5389 pub waiting: Option<String>,
5390}
5391impl From<&IoArgoprojWorkflowV1alpha1NodeSynchronizationStatus>
5392 for IoArgoprojWorkflowV1alpha1NodeSynchronizationStatus
5393{
5394 fn from(value: &IoArgoprojWorkflowV1alpha1NodeSynchronizationStatus) -> Self {
5395 value.clone()
5396 }
5397}
5398#[doc = "NoneStrategy indicates to skip tar process and upload the files or directory tree as independent files. Note that if the artifact is a directory, the artifact driver must support the ability to save/load the directory appropriately."]
5399#[derive(Clone, Debug, Deserialize, Serialize)]
5400pub struct IoArgoprojWorkflowV1alpha1NoneStrategy(pub serde_json::Map<String, serde_json::Value>);
5401impl std::ops::Deref for IoArgoprojWorkflowV1alpha1NoneStrategy {
5402 type Target = serde_json::Map<String, serde_json::Value>;
5403 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
5404 &self.0
5405 }
5406}
5407impl From<IoArgoprojWorkflowV1alpha1NoneStrategy> for serde_json::Map<String, serde_json::Value> {
5408 fn from(value: IoArgoprojWorkflowV1alpha1NoneStrategy) -> Self {
5409 value.0
5410 }
5411}
5412impl From<&IoArgoprojWorkflowV1alpha1NoneStrategy> for IoArgoprojWorkflowV1alpha1NoneStrategy {
5413 fn from(value: &IoArgoprojWorkflowV1alpha1NoneStrategy) -> Self {
5414 value.clone()
5415 }
5416}
5417impl From<serde_json::Map<String, serde_json::Value>> for IoArgoprojWorkflowV1alpha1NoneStrategy {
5418 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
5419 Self(value)
5420 }
5421}
5422#[doc = "OAuth2Auth holds all information for client authentication via OAuth2 tokens"]
5423#[derive(Clone, Debug, Deserialize, Serialize)]
5424pub struct IoArgoprojWorkflowV1alpha1OAuth2Auth {
5425 #[serde(
5426 rename = "clientIDSecret",
5427 default,
5428 skip_serializing_if = "Option::is_none"
5429 )]
5430 pub client_id_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5431 #[serde(
5432 rename = "clientSecretSecret",
5433 default,
5434 skip_serializing_if = "Option::is_none"
5435 )]
5436 pub client_secret_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5437 #[serde(
5438 rename = "endpointParams",
5439 default,
5440 skip_serializing_if = "Vec::is_empty"
5441 )]
5442 pub endpoint_params: Vec<IoArgoprojWorkflowV1alpha1OAuth2EndpointParam>,
5443 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5444 pub scopes: Vec<String>,
5445 #[serde(
5446 rename = "tokenURLSecret",
5447 default,
5448 skip_serializing_if = "Option::is_none"
5449 )]
5450 pub token_url_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5451}
5452impl From<&IoArgoprojWorkflowV1alpha1OAuth2Auth> for IoArgoprojWorkflowV1alpha1OAuth2Auth {
5453 fn from(value: &IoArgoprojWorkflowV1alpha1OAuth2Auth) -> Self {
5454 value.clone()
5455 }
5456}
5457#[doc = "EndpointParam is for requesting optional fields that should be sent in the oauth request"]
5458#[derive(Clone, Debug, Deserialize, Serialize)]
5459pub struct IoArgoprojWorkflowV1alpha1OAuth2EndpointParam {
5460 #[doc = "Name is the header name"]
5461 pub key: String,
5462 #[doc = "Value is the literal value to use for the header"]
5463 #[serde(default, skip_serializing_if = "Option::is_none")]
5464 pub value: Option<String>,
5465}
5466impl From<&IoArgoprojWorkflowV1alpha1OAuth2EndpointParam>
5467 for IoArgoprojWorkflowV1alpha1OAuth2EndpointParam
5468{
5469 fn from(value: &IoArgoprojWorkflowV1alpha1OAuth2EndpointParam) -> Self {
5470 value.clone()
5471 }
5472}
5473#[doc = "OSSArtifact is the location of an Alibaba Cloud OSS artifact"]
5474#[derive(Clone, Debug, Deserialize, Serialize)]
5475pub struct IoArgoprojWorkflowV1alpha1OssArtifact {
5476 #[doc = "AccessKeySecret is the secret selector to the bucket's access key"]
5477 #[serde(
5478 rename = "accessKeySecret",
5479 default,
5480 skip_serializing_if = "Option::is_none"
5481 )]
5482 pub access_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5483 #[doc = "Bucket is the name of the bucket"]
5484 #[serde(default, skip_serializing_if = "Option::is_none")]
5485 pub bucket: Option<String>,
5486 #[doc = "CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist"]
5487 #[serde(
5488 rename = "createBucketIfNotPresent",
5489 default,
5490 skip_serializing_if = "Option::is_none"
5491 )]
5492 pub create_bucket_if_not_present: Option<bool>,
5493 #[doc = "Endpoint is the hostname of the bucket endpoint"]
5494 #[serde(default, skip_serializing_if = "Option::is_none")]
5495 pub endpoint: Option<String>,
5496 #[doc = "Key is the path in the bucket where the artifact resides"]
5497 pub key: String,
5498 #[doc = "LifecycleRule specifies how to manage bucket's lifecycle"]
5499 #[serde(
5500 rename = "lifecycleRule",
5501 default,
5502 skip_serializing_if = "Option::is_none"
5503 )]
5504 pub lifecycle_rule: Option<IoArgoprojWorkflowV1alpha1OssLifecycleRule>,
5505 #[doc = "SecretKeySecret is the secret selector to the bucket's secret key"]
5506 #[serde(
5507 rename = "secretKeySecret",
5508 default,
5509 skip_serializing_if = "Option::is_none"
5510 )]
5511 pub secret_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5512 #[doc = "SecurityToken is the user's temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm"]
5513 #[serde(
5514 rename = "securityToken",
5515 default,
5516 skip_serializing_if = "Option::is_none"
5517 )]
5518 pub security_token: Option<String>,
5519 #[doc = "UseSDKCreds tells the driver to figure out credentials based on sdk defaults."]
5520 #[serde(
5521 rename = "useSDKCreds",
5522 default,
5523 skip_serializing_if = "Option::is_none"
5524 )]
5525 pub use_sdk_creds: Option<bool>,
5526}
5527impl From<&IoArgoprojWorkflowV1alpha1OssArtifact> for IoArgoprojWorkflowV1alpha1OssArtifact {
5528 fn from(value: &IoArgoprojWorkflowV1alpha1OssArtifact) -> Self {
5529 value.clone()
5530 }
5531}
5532#[doc = "OSSArtifactRepository defines the controller configuration for an OSS artifact repository"]
5533#[derive(Clone, Debug, Deserialize, Serialize)]
5534pub struct IoArgoprojWorkflowV1alpha1OssArtifactRepository {
5535 #[doc = "AccessKeySecret is the secret selector to the bucket's access key"]
5536 #[serde(
5537 rename = "accessKeySecret",
5538 default,
5539 skip_serializing_if = "Option::is_none"
5540 )]
5541 pub access_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5542 #[doc = "Bucket is the name of the bucket"]
5543 #[serde(default, skip_serializing_if = "Option::is_none")]
5544 pub bucket: Option<String>,
5545 #[doc = "CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist"]
5546 #[serde(
5547 rename = "createBucketIfNotPresent",
5548 default,
5549 skip_serializing_if = "Option::is_none"
5550 )]
5551 pub create_bucket_if_not_present: Option<bool>,
5552 #[doc = "Endpoint is the hostname of the bucket endpoint"]
5553 #[serde(default, skip_serializing_if = "Option::is_none")]
5554 pub endpoint: Option<String>,
5555 #[doc = "KeyFormat defines the format of how to store keys and can reference workflow variables."]
5556 #[serde(rename = "keyFormat", default, skip_serializing_if = "Option::is_none")]
5557 pub key_format: Option<String>,
5558 #[doc = "LifecycleRule specifies how to manage bucket's lifecycle"]
5559 #[serde(
5560 rename = "lifecycleRule",
5561 default,
5562 skip_serializing_if = "Option::is_none"
5563 )]
5564 pub lifecycle_rule: Option<IoArgoprojWorkflowV1alpha1OssLifecycleRule>,
5565 #[doc = "SecretKeySecret is the secret selector to the bucket's secret key"]
5566 #[serde(
5567 rename = "secretKeySecret",
5568 default,
5569 skip_serializing_if = "Option::is_none"
5570 )]
5571 pub secret_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5572 #[doc = "SecurityToken is the user's temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm"]
5573 #[serde(
5574 rename = "securityToken",
5575 default,
5576 skip_serializing_if = "Option::is_none"
5577 )]
5578 pub security_token: Option<String>,
5579 #[doc = "UseSDKCreds tells the driver to figure out credentials based on sdk defaults."]
5580 #[serde(
5581 rename = "useSDKCreds",
5582 default,
5583 skip_serializing_if = "Option::is_none"
5584 )]
5585 pub use_sdk_creds: Option<bool>,
5586}
5587impl From<&IoArgoprojWorkflowV1alpha1OssArtifactRepository>
5588 for IoArgoprojWorkflowV1alpha1OssArtifactRepository
5589{
5590 fn from(value: &IoArgoprojWorkflowV1alpha1OssArtifactRepository) -> Self {
5591 value.clone()
5592 }
5593}
5594#[doc = "OSSLifecycleRule specifies how to manage bucket's lifecycle"]
5595#[derive(Clone, Debug, Deserialize, Serialize)]
5596pub struct IoArgoprojWorkflowV1alpha1OssLifecycleRule {
5597 #[doc = "MarkDeletionAfterDays is the number of days before we delete objects in the bucket"]
5598 #[serde(
5599 rename = "markDeletionAfterDays",
5600 default,
5601 skip_serializing_if = "Option::is_none"
5602 )]
5603 pub mark_deletion_after_days: Option<i64>,
5604 #[doc = "MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type"]
5605 #[serde(
5606 rename = "markInfrequentAccessAfterDays",
5607 default,
5608 skip_serializing_if = "Option::is_none"
5609 )]
5610 pub mark_infrequent_access_after_days: Option<i64>,
5611}
5612impl From<&IoArgoprojWorkflowV1alpha1OssLifecycleRule>
5613 for IoArgoprojWorkflowV1alpha1OssLifecycleRule
5614{
5615 fn from(value: &IoArgoprojWorkflowV1alpha1OssLifecycleRule) -> Self {
5616 value.clone()
5617 }
5618}
5619#[doc = "Outputs hold parameters, artifacts, and results from a step"]
5620#[derive(Clone, Debug, Deserialize, Serialize)]
5621pub struct IoArgoprojWorkflowV1alpha1Outputs {
5622 #[doc = "Artifacts holds the list of output artifacts produced by a step"]
5623 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5624 pub artifacts: Vec<IoArgoprojWorkflowV1alpha1Artifact>,
5625 #[doc = "ExitCode holds the exit code of a script template"]
5626 #[serde(rename = "exitCode", default, skip_serializing_if = "Option::is_none")]
5627 pub exit_code: Option<String>,
5628 #[doc = "Parameters holds the list of output parameters produced by a step"]
5629 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5630 pub parameters: Vec<IoArgoprojWorkflowV1alpha1Parameter>,
5631 #[doc = "Result holds the result (stdout) of a script template"]
5632 #[serde(default, skip_serializing_if = "Option::is_none")]
5633 pub result: Option<String>,
5634}
5635impl From<&IoArgoprojWorkflowV1alpha1Outputs> for IoArgoprojWorkflowV1alpha1Outputs {
5636 fn from(value: &IoArgoprojWorkflowV1alpha1Outputs) -> Self {
5637 value.clone()
5638 }
5639}
5640#[derive(Clone, Debug, Deserialize, Serialize)]
5641pub struct IoArgoprojWorkflowV1alpha1ParallelSteps(pub Vec<IoArgoprojWorkflowV1alpha1WorkflowStep>);
5642impl std::ops::Deref for IoArgoprojWorkflowV1alpha1ParallelSteps {
5643 type Target = Vec<IoArgoprojWorkflowV1alpha1WorkflowStep>;
5644 fn deref(&self) -> &Vec<IoArgoprojWorkflowV1alpha1WorkflowStep> {
5645 &self.0
5646 }
5647}
5648impl From<IoArgoprojWorkflowV1alpha1ParallelSteps> for Vec<IoArgoprojWorkflowV1alpha1WorkflowStep> {
5649 fn from(value: IoArgoprojWorkflowV1alpha1ParallelSteps) -> Self {
5650 value.0
5651 }
5652}
5653impl From<&IoArgoprojWorkflowV1alpha1ParallelSteps> for IoArgoprojWorkflowV1alpha1ParallelSteps {
5654 fn from(value: &IoArgoprojWorkflowV1alpha1ParallelSteps) -> Self {
5655 value.clone()
5656 }
5657}
5658impl From<Vec<IoArgoprojWorkflowV1alpha1WorkflowStep>> for IoArgoprojWorkflowV1alpha1ParallelSteps {
5659 fn from(value: Vec<IoArgoprojWorkflowV1alpha1WorkflowStep>) -> Self {
5660 Self(value)
5661 }
5662}
5663
5664pub use IoArgoprojWorkflowV1alpha1ParameterBuilder as ParameterBuilder;
5665pub use IoArgoprojWorkflowV1alpha1ParameterBuilderError as ParameterBuilderError;
5666#[doc = "Parameter indicate a passed string parameter to a service template with an optional default value"]
5667#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
5668pub struct IoArgoprojWorkflowV1alpha1Parameter {
5669 #[builder(default)]
5670 #[doc = "Default is the default value to use for an input parameter if a value was not supplied"]
5671 #[serde(default, skip_serializing_if = "Option::is_none")]
5672 pub default: Option<String>,
5673 #[builder(default)]
5674 #[doc = "Description is the parameter description"]
5675 #[serde(default, skip_serializing_if = "Option::is_none")]
5676 pub description: Option<String>,
5677 #[builder(default)]
5678 #[doc = "Enum holds a list of string values to choose from, for the actual value of the parameter"]
5679 #[serde(rename = "enum", default, skip_serializing_if = "Vec::is_empty")]
5680 pub enum_: Vec<String>,
5681 #[builder(default)]
5682 #[doc = "GlobalName exports an output parameter to the global scope, making it available as '{{io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters"]
5683 #[serde(
5684 rename = "globalName",
5685 default,
5686 skip_serializing_if = "Option::is_none"
5687 )]
5688 pub global_name: Option<String>,
5689 #[doc = "Name is the parameter name"]
5690 pub name: String,
5691 #[builder(default)]
5692 #[doc = "Value is the literal value to use for the parameter. If specified in the context of an input parameter, the value takes precedence over any passed values"]
5693 #[serde(default, skip_serializing_if = "Option::is_none")]
5694 pub value: Option<String>,
5695 #[builder(default)]
5696 #[doc = "ValueFrom is the source for the output parameter's value"]
5697 #[serde(rename = "valueFrom", default, skip_serializing_if = "Option::is_none")]
5698 pub value_from: Option<IoArgoprojWorkflowV1alpha1ValueFrom>,
5699}
5700impl From<&IoArgoprojWorkflowV1alpha1Parameter> for IoArgoprojWorkflowV1alpha1Parameter {
5701 fn from(value: &IoArgoprojWorkflowV1alpha1Parameter) -> Self {
5702 value.clone()
5703 }
5704}
5705#[doc = "Plugin is an Object with exactly one key"]
5706#[derive(Clone, Debug, Deserialize, Serialize)]
5707pub struct IoArgoprojWorkflowV1alpha1Plugin(pub serde_json::Map<String, serde_json::Value>);
5708impl std::ops::Deref for IoArgoprojWorkflowV1alpha1Plugin {
5709 type Target = serde_json::Map<String, serde_json::Value>;
5710 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
5711 &self.0
5712 }
5713}
5714impl From<IoArgoprojWorkflowV1alpha1Plugin> for serde_json::Map<String, serde_json::Value> {
5715 fn from(value: IoArgoprojWorkflowV1alpha1Plugin) -> Self {
5716 value.0
5717 }
5718}
5719impl From<&IoArgoprojWorkflowV1alpha1Plugin> for IoArgoprojWorkflowV1alpha1Plugin {
5720 fn from(value: &IoArgoprojWorkflowV1alpha1Plugin) -> Self {
5721 value.clone()
5722 }
5723}
5724impl From<serde_json::Map<String, serde_json::Value>> for IoArgoprojWorkflowV1alpha1Plugin {
5725 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
5726 Self(value)
5727 }
5728}
5729#[doc = "PodGC describes how to delete completed pods as they complete"]
5730#[derive(Clone, Debug, Deserialize, Serialize)]
5731pub struct IoArgoprojWorkflowV1alpha1PodGc {
5732 #[doc = "DeleteDelayDuration specifies the duration before pods in the GC queue get deleted."]
5733 #[serde(
5734 rename = "deleteDelayDuration",
5735 default,
5736 skip_serializing_if = "Option::is_none"
5737 )]
5738 pub delete_delay_duration: Option<IoK8sApimachineryPkgApisMetaV1Duration>,
5739 #[doc = "LabelSelector is the label selector to check if the pods match the labels before being added to the pod GC queue."]
5740 #[serde(
5741 rename = "labelSelector",
5742 default,
5743 skip_serializing_if = "Option::is_none"
5744 )]
5745 pub label_selector: Option<IoK8sApimachineryPkgApisMetaV1LabelSelector>,
5746 #[doc = "Strategy is the strategy to use. One of \"OnPodCompletion\", \"OnPodSuccess\", \"OnWorkflowCompletion\", \"OnWorkflowSuccess\". If unset, does not delete Pods"]
5747 #[serde(default, skip_serializing_if = "Option::is_none")]
5748 pub strategy: Option<String>,
5749}
5750impl From<&IoArgoprojWorkflowV1alpha1PodGc> for IoArgoprojWorkflowV1alpha1PodGc {
5751 fn from(value: &IoArgoprojWorkflowV1alpha1PodGc) -> Self {
5752 value.clone()
5753 }
5754}
5755#[doc = "Prometheus is a prometheus metric to be emitted"]
5756#[derive(Clone, Debug, Deserialize, Serialize)]
5757pub struct IoArgoprojWorkflowV1alpha1Prometheus {
5758 #[doc = "Counter is a counter metric"]
5759 #[serde(default, skip_serializing_if = "Option::is_none")]
5760 pub counter: Option<IoArgoprojWorkflowV1alpha1Counter>,
5761 #[doc = "Gauge is a gauge metric"]
5762 #[serde(default, skip_serializing_if = "Option::is_none")]
5763 pub gauge: Option<IoArgoprojWorkflowV1alpha1Gauge>,
5764 #[doc = "Help is a string that describes the metric"]
5765 pub help: String,
5766 #[doc = "Histogram is a histogram metric"]
5767 #[serde(default, skip_serializing_if = "Option::is_none")]
5768 pub histogram: Option<IoArgoprojWorkflowV1alpha1Histogram>,
5769 #[doc = "Labels is a list of metric labels"]
5770 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5771 pub labels: Vec<IoArgoprojWorkflowV1alpha1MetricLabel>,
5772 #[doc = "Name is the name of the metric"]
5773 pub name: String,
5774 #[doc = "When is a conditional statement that decides when to emit the metric"]
5775 #[serde(default, skip_serializing_if = "Option::is_none")]
5776 pub when: Option<String>,
5777}
5778impl From<&IoArgoprojWorkflowV1alpha1Prometheus> for IoArgoprojWorkflowV1alpha1Prometheus {
5779 fn from(value: &IoArgoprojWorkflowV1alpha1Prometheus) -> Self {
5780 value.clone()
5781 }
5782}
5783#[doc = "RawArtifact allows raw string content to be placed as an artifact in a container"]
5784#[derive(Clone, Debug, Deserialize, Serialize)]
5785pub struct IoArgoprojWorkflowV1alpha1RawArtifact {
5786 #[doc = "Data is the string contents of the artifact"]
5787 pub data: String,
5788}
5789impl From<&IoArgoprojWorkflowV1alpha1RawArtifact> for IoArgoprojWorkflowV1alpha1RawArtifact {
5790 fn from(value: &IoArgoprojWorkflowV1alpha1RawArtifact) -> Self {
5791 value.clone()
5792 }
5793}
5794#[doc = "ResourceTemplate is a template subtype to manipulate kubernetes resources"]
5795#[derive(Clone, Debug, Deserialize, Serialize)]
5796pub struct IoArgoprojWorkflowV1alpha1ResourceTemplate {
5797 #[doc = "Action is the action to perform to the resource. Must be one of: get, create, apply, delete, replace, patch"]
5798 pub action: String,
5799 #[doc = "FailureCondition is a label selector expression which describes the conditions of the k8s resource in which the step was considered failed"]
5800 #[serde(
5801 rename = "failureCondition",
5802 default,
5803 skip_serializing_if = "Option::is_none"
5804 )]
5805 pub failure_condition: Option<String>,
5806 #[doc = "Flags is a set of additional options passed to kubectl before submitting a resource I.e. to disable resource validation: flags: [\n\t\"--validate=false\" # disable resource validation\n]"]
5807 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5808 pub flags: Vec<String>,
5809 #[doc = "Manifest contains the kubernetes manifest"]
5810 #[serde(default, skip_serializing_if = "Option::is_none")]
5811 pub manifest: Option<String>,
5812 #[doc = "ManifestFrom is the source for a single kubernetes manifest"]
5813 #[serde(
5814 rename = "manifestFrom",
5815 default,
5816 skip_serializing_if = "Option::is_none"
5817 )]
5818 pub manifest_from: Option<IoArgoprojWorkflowV1alpha1ManifestFrom>,
5819 #[doc = "MergeStrategy is the strategy used to merge a patch. It defaults to \"strategic\" Must be one of: strategic, merge, json"]
5820 #[serde(
5821 rename = "mergeStrategy",
5822 default,
5823 skip_serializing_if = "Option::is_none"
5824 )]
5825 pub merge_strategy: Option<String>,
5826 #[doc = "SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource."]
5827 #[serde(
5828 rename = "setOwnerReference",
5829 default,
5830 skip_serializing_if = "Option::is_none"
5831 )]
5832 pub set_owner_reference: Option<bool>,
5833 #[doc = "SuccessCondition is a label selector expression which describes the conditions of the k8s resource in which it is acceptable to proceed to the following step"]
5834 #[serde(
5835 rename = "successCondition",
5836 default,
5837 skip_serializing_if = "Option::is_none"
5838 )]
5839 pub success_condition: Option<String>,
5840}
5841impl From<&IoArgoprojWorkflowV1alpha1ResourceTemplate>
5842 for IoArgoprojWorkflowV1alpha1ResourceTemplate
5843{
5844 fn from(value: &IoArgoprojWorkflowV1alpha1ResourceTemplate) -> Self {
5845 value.clone()
5846 }
5847}
5848#[derive(Clone, Debug, Deserialize, Serialize)]
5849pub struct IoArgoprojWorkflowV1alpha1ResubmitArchivedWorkflowRequest {
5850 #[serde(default, skip_serializing_if = "Option::is_none")]
5851 pub memoized: Option<bool>,
5852 #[serde(default, skip_serializing_if = "Option::is_none")]
5853 pub name: Option<String>,
5854 #[serde(default, skip_serializing_if = "Option::is_none")]
5855 pub namespace: Option<String>,
5856 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5857 pub parameters: Vec<String>,
5858 #[serde(default, skip_serializing_if = "Option::is_none")]
5859 pub uid: Option<String>,
5860}
5861impl From<&IoArgoprojWorkflowV1alpha1ResubmitArchivedWorkflowRequest>
5862 for IoArgoprojWorkflowV1alpha1ResubmitArchivedWorkflowRequest
5863{
5864 fn from(value: &IoArgoprojWorkflowV1alpha1ResubmitArchivedWorkflowRequest) -> Self {
5865 value.clone()
5866 }
5867}
5868#[doc = "RetryAffinity prevents running steps on the same host."]
5869#[derive(Clone, Debug, Deserialize, Serialize)]
5870pub struct IoArgoprojWorkflowV1alpha1RetryAffinity {
5871 #[serde(
5872 rename = "nodeAntiAffinity",
5873 default,
5874 skip_serializing_if = "Option::is_none"
5875 )]
5876 pub node_anti_affinity: Option<IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity>,
5877}
5878impl From<&IoArgoprojWorkflowV1alpha1RetryAffinity> for IoArgoprojWorkflowV1alpha1RetryAffinity {
5879 fn from(value: &IoArgoprojWorkflowV1alpha1RetryAffinity) -> Self {
5880 value.clone()
5881 }
5882}
5883#[derive(Clone, Debug, Deserialize, Serialize)]
5884pub struct IoArgoprojWorkflowV1alpha1RetryArchivedWorkflowRequest {
5885 #[serde(default, skip_serializing_if = "Option::is_none")]
5886 pub name: Option<String>,
5887 #[serde(default, skip_serializing_if = "Option::is_none")]
5888 pub namespace: Option<String>,
5889 #[serde(
5890 rename = "nodeFieldSelector",
5891 default,
5892 skip_serializing_if = "Option::is_none"
5893 )]
5894 pub node_field_selector: Option<String>,
5895 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5896 pub parameters: Vec<String>,
5897 #[serde(
5898 rename = "restartSuccessful",
5899 default,
5900 skip_serializing_if = "Option::is_none"
5901 )]
5902 pub restart_successful: Option<bool>,
5903 #[serde(default, skip_serializing_if = "Option::is_none")]
5904 pub uid: Option<String>,
5905}
5906impl From<&IoArgoprojWorkflowV1alpha1RetryArchivedWorkflowRequest>
5907 for IoArgoprojWorkflowV1alpha1RetryArchivedWorkflowRequest
5908{
5909 fn from(value: &IoArgoprojWorkflowV1alpha1RetryArchivedWorkflowRequest) -> Self {
5910 value.clone()
5911 }
5912}
5913#[doc = "RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed. In order to prevent running steps on the same host, it uses \"kubernetes.io/hostname\"."]
5914#[derive(Clone, Debug, Deserialize, Serialize)]
5915pub struct IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity(
5916 pub serde_json::Map<String, serde_json::Value>,
5917);
5918impl std::ops::Deref for IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity {
5919 type Target = serde_json::Map<String, serde_json::Value>;
5920 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
5921 &self.0
5922 }
5923}
5924impl From<IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity>
5925 for serde_json::Map<String, serde_json::Value>
5926{
5927 fn from(value: IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity) -> Self {
5928 value.0
5929 }
5930}
5931impl From<&IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity>
5932 for IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity
5933{
5934 fn from(value: &IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity) -> Self {
5935 value.clone()
5936 }
5937}
5938impl From<serde_json::Map<String, serde_json::Value>>
5939 for IoArgoprojWorkflowV1alpha1RetryNodeAntiAffinity
5940{
5941 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
5942 Self(value)
5943 }
5944}
5945#[doc = "RetryStrategy provides controls on how to retry a workflow step"]
5946#[derive(Clone, Debug, Deserialize, Serialize)]
5947pub struct IoArgoprojWorkflowV1alpha1RetryStrategy {
5948 #[doc = "Affinity prevents running workflow's step on the same host"]
5949 #[serde(default, skip_serializing_if = "Option::is_none")]
5950 pub affinity: Option<IoArgoprojWorkflowV1alpha1RetryAffinity>,
5951 #[doc = "Backoff is a backoff strategy"]
5952 #[serde(default, skip_serializing_if = "Option::is_none")]
5953 pub backoff: Option<IoArgoprojWorkflowV1alpha1Backoff>,
5954 #[doc = "Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not be retried and the retry strategy will be ignored"]
5955 #[serde(default, skip_serializing_if = "Option::is_none")]
5956 pub expression: Option<String>,
5957 #[doc = "Limit is the maximum number of retry attempts when retrying a container. It does not include the original container; the maximum number of total attempts will be `limit + 1`."]
5958 #[serde(default, skip_serializing_if = "Option::is_none")]
5959 pub limit: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
5960 #[doc = "RetryPolicy is a policy of NodePhase statuses that will be retried"]
5961 #[serde(
5962 rename = "retryPolicy",
5963 default,
5964 skip_serializing_if = "Option::is_none"
5965 )]
5966 pub retry_policy: Option<String>,
5967}
5968impl From<&IoArgoprojWorkflowV1alpha1RetryStrategy> for IoArgoprojWorkflowV1alpha1RetryStrategy {
5969 fn from(value: &IoArgoprojWorkflowV1alpha1RetryStrategy) -> Self {
5970 value.clone()
5971 }
5972}
5973#[doc = "S3Artifact is the location of an S3 artifact"]
5974#[derive(Clone, Debug, Deserialize, Serialize)]
5975pub struct IoArgoprojWorkflowV1alpha1S3Artifact {
5976 #[doc = "AccessKeySecret is the secret selector to the bucket's access key"]
5977 #[serde(
5978 rename = "accessKeySecret",
5979 default,
5980 skip_serializing_if = "Option::is_none"
5981 )]
5982 pub access_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5983 #[doc = "Bucket is the name of the bucket"]
5984 #[serde(default, skip_serializing_if = "Option::is_none")]
5985 pub bucket: Option<String>,
5986 #[doc = "CASecret specifies the secret that contains the CA, used to verify the TLS connection"]
5987 #[serde(rename = "caSecret", default, skip_serializing_if = "Option::is_none")]
5988 pub ca_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
5989 #[doc = "CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is."]
5990 #[serde(
5991 rename = "createBucketIfNotPresent",
5992 default,
5993 skip_serializing_if = "Option::is_none"
5994 )]
5995 pub create_bucket_if_not_present: Option<IoArgoprojWorkflowV1alpha1CreateS3BucketOptions>,
5996 #[serde(
5997 rename = "encryptionOptions",
5998 default,
5999 skip_serializing_if = "Option::is_none"
6000 )]
6001 pub encryption_options: Option<IoArgoprojWorkflowV1alpha1S3EncryptionOptions>,
6002 #[doc = "Endpoint is the hostname of the bucket endpoint"]
6003 #[serde(default, skip_serializing_if = "Option::is_none")]
6004 pub endpoint: Option<String>,
6005 #[doc = "Insecure will connect to the service with TLS"]
6006 #[serde(default, skip_serializing_if = "Option::is_none")]
6007 pub insecure: Option<bool>,
6008 #[doc = "Key is the key in the bucket where the artifact resides"]
6009 #[serde(default, skip_serializing_if = "Option::is_none")]
6010 pub key: Option<String>,
6011 #[doc = "Region contains the optional bucket region"]
6012 #[serde(default, skip_serializing_if = "Option::is_none")]
6013 pub region: Option<String>,
6014 #[doc = "RoleARN is the Amazon Resource Name (ARN) of the role to assume."]
6015 #[serde(rename = "roleARN", default, skip_serializing_if = "Option::is_none")]
6016 pub role_arn: Option<String>,
6017 #[doc = "SecretKeySecret is the secret selector to the bucket's secret key"]
6018 #[serde(
6019 rename = "secretKeySecret",
6020 default,
6021 skip_serializing_if = "Option::is_none"
6022 )]
6023 pub secret_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
6024 #[doc = "UseSDKCreds tells the driver to figure out credentials based on sdk defaults."]
6025 #[serde(
6026 rename = "useSDKCreds",
6027 default,
6028 skip_serializing_if = "Option::is_none"
6029 )]
6030 pub use_sdk_creds: Option<bool>,
6031}
6032impl From<&IoArgoprojWorkflowV1alpha1S3Artifact> for IoArgoprojWorkflowV1alpha1S3Artifact {
6033 fn from(value: &IoArgoprojWorkflowV1alpha1S3Artifact) -> Self {
6034 value.clone()
6035 }
6036}
6037#[doc = "S3ArtifactRepository defines the controller configuration for an S3 artifact repository"]
6038#[derive(Clone, Debug, Deserialize, Serialize)]
6039pub struct IoArgoprojWorkflowV1alpha1S3ArtifactRepository {
6040 #[doc = "AccessKeySecret is the secret selector to the bucket's access key"]
6041 #[serde(
6042 rename = "accessKeySecret",
6043 default,
6044 skip_serializing_if = "Option::is_none"
6045 )]
6046 pub access_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
6047 #[doc = "Bucket is the name of the bucket"]
6048 #[serde(default, skip_serializing_if = "Option::is_none")]
6049 pub bucket: Option<String>,
6050 #[doc = "CASecret specifies the secret that contains the CA, used to verify the TLS connection"]
6051 #[serde(rename = "caSecret", default, skip_serializing_if = "Option::is_none")]
6052 pub ca_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
6053 #[doc = "CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is."]
6054 #[serde(
6055 rename = "createBucketIfNotPresent",
6056 default,
6057 skip_serializing_if = "Option::is_none"
6058 )]
6059 pub create_bucket_if_not_present: Option<IoArgoprojWorkflowV1alpha1CreateS3BucketOptions>,
6060 #[serde(
6061 rename = "encryptionOptions",
6062 default,
6063 skip_serializing_if = "Option::is_none"
6064 )]
6065 pub encryption_options: Option<IoArgoprojWorkflowV1alpha1S3EncryptionOptions>,
6066 #[doc = "Endpoint is the hostname of the bucket endpoint"]
6067 #[serde(default, skip_serializing_if = "Option::is_none")]
6068 pub endpoint: Option<String>,
6069 #[doc = "Insecure will connect to the service with TLS"]
6070 #[serde(default, skip_serializing_if = "Option::is_none")]
6071 pub insecure: Option<bool>,
6072 #[doc = "KeyFormat defines the format of how to store keys and can reference workflow variables."]
6073 #[serde(rename = "keyFormat", default, skip_serializing_if = "Option::is_none")]
6074 pub key_format: Option<String>,
6075 #[doc = "KeyPrefix is prefix used as part of the bucket key in which the controller will store artifacts. DEPRECATED. Use KeyFormat instead"]
6076 #[serde(rename = "keyPrefix", default, skip_serializing_if = "Option::is_none")]
6077 pub key_prefix: Option<String>,
6078 #[doc = "Region contains the optional bucket region"]
6079 #[serde(default, skip_serializing_if = "Option::is_none")]
6080 pub region: Option<String>,
6081 #[doc = "RoleARN is the Amazon Resource Name (ARN) of the role to assume."]
6082 #[serde(rename = "roleARN", default, skip_serializing_if = "Option::is_none")]
6083 pub role_arn: Option<String>,
6084 #[doc = "SecretKeySecret is the secret selector to the bucket's secret key"]
6085 #[serde(
6086 rename = "secretKeySecret",
6087 default,
6088 skip_serializing_if = "Option::is_none"
6089 )]
6090 pub secret_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
6091 #[doc = "UseSDKCreds tells the driver to figure out credentials based on sdk defaults."]
6092 #[serde(
6093 rename = "useSDKCreds",
6094 default,
6095 skip_serializing_if = "Option::is_none"
6096 )]
6097 pub use_sdk_creds: Option<bool>,
6098}
6099impl From<&IoArgoprojWorkflowV1alpha1S3ArtifactRepository>
6100 for IoArgoprojWorkflowV1alpha1S3ArtifactRepository
6101{
6102 fn from(value: &IoArgoprojWorkflowV1alpha1S3ArtifactRepository) -> Self {
6103 value.clone()
6104 }
6105}
6106#[doc = "S3EncryptionOptions used to determine encryption options during s3 operations"]
6107#[derive(Clone, Debug, Deserialize, Serialize)]
6108pub struct IoArgoprojWorkflowV1alpha1S3EncryptionOptions {
6109 #[doc = "EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used"]
6110 #[serde(
6111 rename = "enableEncryption",
6112 default,
6113 skip_serializing_if = "Option::is_none"
6114 )]
6115 pub enable_encryption: Option<bool>,
6116 #[doc = "KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information"]
6117 #[serde(
6118 rename = "kmsEncryptionContext",
6119 default,
6120 skip_serializing_if = "Option::is_none"
6121 )]
6122 pub kms_encryption_context: Option<String>,
6123 #[doc = "KMSKeyId tells the driver to encrypt the object using the specified KMS Key."]
6124 #[serde(rename = "kmsKeyId", default, skip_serializing_if = "Option::is_none")]
6125 pub kms_key_id: Option<String>,
6126 #[doc = "ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret."]
6127 #[serde(
6128 rename = "serverSideCustomerKeySecret",
6129 default,
6130 skip_serializing_if = "Option::is_none"
6131 )]
6132 pub server_side_customer_key_secret: Option<IoK8sApiCoreV1SecretKeySelector>,
6133}
6134impl From<&IoArgoprojWorkflowV1alpha1S3EncryptionOptions>
6135 for IoArgoprojWorkflowV1alpha1S3EncryptionOptions
6136{
6137 fn from(value: &IoArgoprojWorkflowV1alpha1S3EncryptionOptions) -> Self {
6138 value.clone()
6139 }
6140}
6141#[doc = "ScriptTemplate is a template subtype to enable scripting through code steps"]
6142#[derive(Clone, Debug, Deserialize, Serialize)]
6143pub struct IoArgoprojWorkflowV1alpha1ScriptTemplate {
6144 #[doc = "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
6145 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6146 pub args: Vec<String>,
6147 #[doc = "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
6148 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6149 pub command: Vec<String>,
6150 #[doc = "List of environment variables to set in the container. Cannot be updated."]
6151 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6152 pub env: Vec<IoK8sApiCoreV1EnvVar>,
6153 #[doc = "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated."]
6154 #[serde(rename = "envFrom", default, skip_serializing_if = "Vec::is_empty")]
6155 pub env_from: Vec<IoK8sApiCoreV1EnvFromSource>,
6156 #[doc = "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."]
6157 pub image: String,
6158 #[doc = "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images"]
6159 #[serde(
6160 rename = "imagePullPolicy",
6161 default,
6162 skip_serializing_if = "Option::is_none"
6163 )]
6164 pub image_pull_policy: Option<String>,
6165 #[doc = "Actions that the management system should take in response to container lifecycle events. Cannot be updated."]
6166 #[serde(default, skip_serializing_if = "Option::is_none")]
6167 pub lifecycle: Option<IoK8sApiCoreV1Lifecycle>,
6168 #[doc = "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
6169 #[serde(
6170 rename = "livenessProbe",
6171 default,
6172 skip_serializing_if = "Option::is_none"
6173 )]
6174 pub liveness_probe: Option<IoK8sApiCoreV1Probe>,
6175 #[doc = "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated."]
6176 #[serde(default, skip_serializing_if = "Option::is_none")]
6177 pub name: Option<String>,
6178 #[doc = "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated."]
6179 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6180 pub ports: Vec<IoK8sApiCoreV1ContainerPort>,
6181 #[doc = "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
6182 #[serde(
6183 rename = "readinessProbe",
6184 default,
6185 skip_serializing_if = "Option::is_none"
6186 )]
6187 pub readiness_probe: Option<IoK8sApiCoreV1Probe>,
6188 #[doc = "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"]
6189 #[serde(default, skip_serializing_if = "Option::is_none")]
6190 pub resources: Option<IoK8sApiCoreV1ResourceRequirements>,
6191 #[doc = "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"]
6192 #[serde(
6193 rename = "securityContext",
6194 default,
6195 skip_serializing_if = "Option::is_none"
6196 )]
6197 pub security_context: Option<IoK8sApiCoreV1SecurityContext>,
6198 #[doc = "Source contains the source code of the script to execute"]
6199 pub source: String,
6200 #[doc = "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
6201 #[serde(
6202 rename = "startupProbe",
6203 default,
6204 skip_serializing_if = "Option::is_none"
6205 )]
6206 pub startup_probe: Option<IoK8sApiCoreV1Probe>,
6207 #[doc = "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false."]
6208 #[serde(default, skip_serializing_if = "Option::is_none")]
6209 pub stdin: Option<bool>,
6210 #[doc = "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false"]
6211 #[serde(rename = "stdinOnce", default, skip_serializing_if = "Option::is_none")]
6212 pub stdin_once: Option<bool>,
6213 #[doc = "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."]
6214 #[serde(
6215 rename = "terminationMessagePath",
6216 default,
6217 skip_serializing_if = "Option::is_none"
6218 )]
6219 pub termination_message_path: Option<String>,
6220 #[doc = "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."]
6221 #[serde(
6222 rename = "terminationMessagePolicy",
6223 default,
6224 skip_serializing_if = "Option::is_none"
6225 )]
6226 pub termination_message_policy: Option<String>,
6227 #[doc = "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false."]
6228 #[serde(default, skip_serializing_if = "Option::is_none")]
6229 pub tty: Option<bool>,
6230 #[doc = "volumeDevices is the list of block devices to be used by the container."]
6231 #[serde(
6232 rename = "volumeDevices",
6233 default,
6234 skip_serializing_if = "Vec::is_empty"
6235 )]
6236 pub volume_devices: Vec<IoK8sApiCoreV1VolumeDevice>,
6237 #[doc = "Pod volumes to mount into the container's filesystem. Cannot be updated."]
6238 #[serde(
6239 rename = "volumeMounts",
6240 default,
6241 skip_serializing_if = "Vec::is_empty"
6242 )]
6243 pub volume_mounts: Vec<IoK8sApiCoreV1VolumeMount>,
6244 #[doc = "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated."]
6245 #[serde(
6246 rename = "workingDir",
6247 default,
6248 skip_serializing_if = "Option::is_none"
6249 )]
6250 pub working_dir: Option<String>,
6251}
6252impl From<&IoArgoprojWorkflowV1alpha1ScriptTemplate> for IoArgoprojWorkflowV1alpha1ScriptTemplate {
6253 fn from(value: &IoArgoprojWorkflowV1alpha1ScriptTemplate) -> Self {
6254 value.clone()
6255 }
6256}
6257#[derive(Clone, Debug, Deserialize, Serialize)]
6258pub struct IoArgoprojWorkflowV1alpha1SemaphoreHolding {
6259 #[doc = "Holders stores the list of current holder names in the io.argoproj.workflow.v1alpha1."]
6260 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6261 pub holders: Vec<String>,
6262 #[doc = "Semaphore stores the semaphore name."]
6263 #[serde(default, skip_serializing_if = "Option::is_none")]
6264 pub semaphore: Option<String>,
6265}
6266impl From<&IoArgoprojWorkflowV1alpha1SemaphoreHolding>
6267 for IoArgoprojWorkflowV1alpha1SemaphoreHolding
6268{
6269 fn from(value: &IoArgoprojWorkflowV1alpha1SemaphoreHolding) -> Self {
6270 value.clone()
6271 }
6272}
6273#[doc = "SemaphoreRef is a reference of Semaphore"]
6274#[derive(Clone, Debug, Deserialize, Serialize)]
6275pub struct IoArgoprojWorkflowV1alpha1SemaphoreRef {
6276 #[doc = "ConfigMapKeyRef is configmap selector for Semaphore configuration"]
6277 #[serde(
6278 rename = "configMapKeyRef",
6279 default,
6280 skip_serializing_if = "Option::is_none"
6281 )]
6282 pub config_map_key_ref: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
6283 #[doc = "Namespace is the namespace of the configmap, default: [namespace of workflow]"]
6284 #[serde(default, skip_serializing_if = "Option::is_none")]
6285 pub namespace: Option<String>,
6286}
6287impl From<&IoArgoprojWorkflowV1alpha1SemaphoreRef> for IoArgoprojWorkflowV1alpha1SemaphoreRef {
6288 fn from(value: &IoArgoprojWorkflowV1alpha1SemaphoreRef) -> Self {
6289 value.clone()
6290 }
6291}
6292#[derive(Clone, Debug, Deserialize, Serialize)]
6293pub struct IoArgoprojWorkflowV1alpha1SemaphoreStatus {
6294 #[doc = "Holding stores the list of resource acquired synchronization lock for workflows."]
6295 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6296 pub holding: Vec<IoArgoprojWorkflowV1alpha1SemaphoreHolding>,
6297 #[doc = "Waiting indicates the list of current synchronization lock holders."]
6298 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6299 pub waiting: Vec<IoArgoprojWorkflowV1alpha1SemaphoreHolding>,
6300}
6301impl From<&IoArgoprojWorkflowV1alpha1SemaphoreStatus>
6302 for IoArgoprojWorkflowV1alpha1SemaphoreStatus
6303{
6304 fn from(value: &IoArgoprojWorkflowV1alpha1SemaphoreStatus) -> Self {
6305 value.clone()
6306 }
6307}
6308#[doc = "Sequence expands a workflow step into numeric range"]
6309#[derive(Clone, Debug, Deserialize, Serialize)]
6310pub struct IoArgoprojWorkflowV1alpha1Sequence {
6311 #[doc = "Count is number of elements in the sequence (default: 0). Not to be used with end"]
6312 #[serde(default, skip_serializing_if = "Option::is_none")]
6313 pub count: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
6314 #[doc = "Number at which to end the sequence (default: 0). Not to be used with Count"]
6315 #[serde(default, skip_serializing_if = "Option::is_none")]
6316 pub end: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
6317 #[doc = "Format is a printf format string to format the value in the sequence"]
6318 #[serde(default, skip_serializing_if = "Option::is_none")]
6319 pub format: Option<String>,
6320 #[doc = "Number at which to start the sequence (default: 0)"]
6321 #[serde(default, skip_serializing_if = "Option::is_none")]
6322 pub start: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
6323}
6324impl From<&IoArgoprojWorkflowV1alpha1Sequence> for IoArgoprojWorkflowV1alpha1Sequence {
6325 fn from(value: &IoArgoprojWorkflowV1alpha1Sequence) -> Self {
6326 value.clone()
6327 }
6328}
6329#[derive(Clone, Debug, Deserialize, Serialize)]
6330pub struct IoArgoprojWorkflowV1alpha1Submit {
6331 #[doc = "Arguments extracted from the event and then set as arguments to the workflow created."]
6332 #[serde(default, skip_serializing_if = "Option::is_none")]
6333 pub arguments: Option<IoArgoprojWorkflowV1alpha1Arguments>,
6334 #[doc = "Metadata optional means to customize select fields of the workflow metadata"]
6335 #[serde(default, skip_serializing_if = "Option::is_none")]
6336 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ObjectMeta>,
6337 #[doc = "WorkflowTemplateRef the workflow template to submit"]
6338 #[serde(rename = "workflowTemplateRef")]
6339 pub workflow_template_ref: IoArgoprojWorkflowV1alpha1WorkflowTemplateRef,
6340}
6341impl From<&IoArgoprojWorkflowV1alpha1Submit> for IoArgoprojWorkflowV1alpha1Submit {
6342 fn from(value: &IoArgoprojWorkflowV1alpha1Submit) -> Self {
6343 value.clone()
6344 }
6345}
6346#[doc = "SubmitOpts are workflow submission options"]
6347#[derive(Clone, Debug, Deserialize, Serialize)]
6348pub struct IoArgoprojWorkflowV1alpha1SubmitOpts {
6349 #[doc = "Annotations adds to metadata.labels"]
6350 #[serde(default, skip_serializing_if = "Option::is_none")]
6351 pub annotations: Option<String>,
6352 #[doc = "DryRun validates the workflow on the client-side without creating it. This option is not supported in API"]
6353 #[serde(rename = "dryRun", default, skip_serializing_if = "Option::is_none")]
6354 pub dry_run: Option<bool>,
6355 #[doc = "Entrypoint overrides spec.entrypoint"]
6356 #[serde(
6357 rename = "entryPoint",
6358 default,
6359 skip_serializing_if = "Option::is_none"
6360 )]
6361 pub entry_point: Option<String>,
6362 #[doc = "GenerateName overrides metadata.generateName"]
6363 #[serde(
6364 rename = "generateName",
6365 default,
6366 skip_serializing_if = "Option::is_none"
6367 )]
6368 pub generate_name: Option<String>,
6369 #[doc = "Labels adds to metadata.labels"]
6370 #[serde(default, skip_serializing_if = "Option::is_none")]
6371 pub labels: Option<String>,
6372 #[doc = "Name overrides metadata.name"]
6373 #[serde(default, skip_serializing_if = "Option::is_none")]
6374 pub name: Option<String>,
6375 #[doc = "OwnerReference creates a metadata.ownerReference"]
6376 #[serde(
6377 rename = "ownerReference",
6378 default,
6379 skip_serializing_if = "Option::is_none"
6380 )]
6381 pub owner_reference: Option<IoK8sApimachineryPkgApisMetaV1OwnerReference>,
6382 #[doc = "Parameters passes input parameters to workflow"]
6383 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6384 pub parameters: Vec<String>,
6385 #[doc = "Set the podPriorityClassName of the workflow"]
6386 #[serde(
6387 rename = "podPriorityClassName",
6388 default,
6389 skip_serializing_if = "Option::is_none"
6390 )]
6391 pub pod_priority_class_name: Option<String>,
6392 #[doc = "Priority is used if controller is configured to process limited number of workflows in parallel, higher priority workflows are processed first."]
6393 #[serde(default, skip_serializing_if = "Option::is_none")]
6394 pub priority: Option<i64>,
6395 #[doc = "ServerDryRun validates the workflow on the server-side without creating it"]
6396 #[serde(
6397 rename = "serverDryRun",
6398 default,
6399 skip_serializing_if = "Option::is_none"
6400 )]
6401 pub server_dry_run: Option<bool>,
6402 #[doc = "ServiceAccount runs all pods in the workflow using specified ServiceAccount."]
6403 #[serde(
6404 rename = "serviceAccount",
6405 default,
6406 skip_serializing_if = "Option::is_none"
6407 )]
6408 pub service_account: Option<String>,
6409}
6410impl From<&IoArgoprojWorkflowV1alpha1SubmitOpts> for IoArgoprojWorkflowV1alpha1SubmitOpts {
6411 fn from(value: &IoArgoprojWorkflowV1alpha1SubmitOpts) -> Self {
6412 value.clone()
6413 }
6414}
6415#[doc = "SuppliedValueFrom is a placeholder for a value to be filled in directly, either through the CLI, API, etc."]
6416#[derive(Clone, Debug, Deserialize, Serialize)]
6417pub struct IoArgoprojWorkflowV1alpha1SuppliedValueFrom(
6418 pub serde_json::Map<String, serde_json::Value>,
6419);
6420impl std::ops::Deref for IoArgoprojWorkflowV1alpha1SuppliedValueFrom {
6421 type Target = serde_json::Map<String, serde_json::Value>;
6422 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
6423 &self.0
6424 }
6425}
6426impl From<IoArgoprojWorkflowV1alpha1SuppliedValueFrom>
6427 for serde_json::Map<String, serde_json::Value>
6428{
6429 fn from(value: IoArgoprojWorkflowV1alpha1SuppliedValueFrom) -> Self {
6430 value.0
6431 }
6432}
6433impl From<&IoArgoprojWorkflowV1alpha1SuppliedValueFrom>
6434 for IoArgoprojWorkflowV1alpha1SuppliedValueFrom
6435{
6436 fn from(value: &IoArgoprojWorkflowV1alpha1SuppliedValueFrom) -> Self {
6437 value.clone()
6438 }
6439}
6440impl From<serde_json::Map<String, serde_json::Value>>
6441 for IoArgoprojWorkflowV1alpha1SuppliedValueFrom
6442{
6443 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
6444 Self(value)
6445 }
6446}
6447#[doc = "SuspendTemplate is a template subtype to suspend a workflow at a predetermined point in time"]
6448#[derive(Clone, Debug, Deserialize, Serialize)]
6449pub struct IoArgoprojWorkflowV1alpha1SuspendTemplate {
6450 #[doc = "Duration is the seconds to wait before automatically resuming a template. Must be a string. Default unit is seconds. Could also be a Duration, e.g.: \"2m\", \"6h\""]
6451 #[serde(default, skip_serializing_if = "Option::is_none")]
6452 pub duration: Option<String>,
6453}
6454impl From<&IoArgoprojWorkflowV1alpha1SuspendTemplate>
6455 for IoArgoprojWorkflowV1alpha1SuspendTemplate
6456{
6457 fn from(value: &IoArgoprojWorkflowV1alpha1SuspendTemplate) -> Self {
6458 value.clone()
6459 }
6460}
6461#[doc = "Synchronization holds synchronization lock configuration"]
6462#[derive(Clone, Debug, Deserialize, Serialize)]
6463pub struct IoArgoprojWorkflowV1alpha1Synchronization {
6464 #[doc = "Mutex holds the Mutex lock details"]
6465 #[serde(default, skip_serializing_if = "Option::is_none")]
6466 pub mutex: Option<IoArgoprojWorkflowV1alpha1Mutex>,
6467 #[doc = "Semaphore holds the Semaphore configuration"]
6468 #[serde(default, skip_serializing_if = "Option::is_none")]
6469 pub semaphore: Option<IoArgoprojWorkflowV1alpha1SemaphoreRef>,
6470}
6471impl From<&IoArgoprojWorkflowV1alpha1Synchronization>
6472 for IoArgoprojWorkflowV1alpha1Synchronization
6473{
6474 fn from(value: &IoArgoprojWorkflowV1alpha1Synchronization) -> Self {
6475 value.clone()
6476 }
6477}
6478#[doc = "SynchronizationStatus stores the status of semaphore and mutex."]
6479#[derive(Clone, Debug, Deserialize, Serialize)]
6480pub struct IoArgoprojWorkflowV1alpha1SynchronizationStatus {
6481 #[doc = "Mutex stores this workflow's mutex holder details"]
6482 #[serde(default, skip_serializing_if = "Option::is_none")]
6483 pub mutex: Option<IoArgoprojWorkflowV1alpha1MutexStatus>,
6484 #[doc = "Semaphore stores this workflow's Semaphore holder details"]
6485 #[serde(default, skip_serializing_if = "Option::is_none")]
6486 pub semaphore: Option<IoArgoprojWorkflowV1alpha1SemaphoreStatus>,
6487}
6488impl From<&IoArgoprojWorkflowV1alpha1SynchronizationStatus>
6489 for IoArgoprojWorkflowV1alpha1SynchronizationStatus
6490{
6491 fn from(value: &IoArgoprojWorkflowV1alpha1SynchronizationStatus) -> Self {
6492 value.clone()
6493 }
6494}
6495#[doc = "TarStrategy will tar and gzip the file or directory when saving"]
6496#[derive(Clone, Debug, Deserialize, Serialize)]
6497pub struct IoArgoprojWorkflowV1alpha1TarStrategy {
6498 #[doc = "CompressionLevel specifies the gzip compression level to use for the artifact. Defaults to gzip.DefaultCompression."]
6499 #[serde(
6500 rename = "compressionLevel",
6501 default,
6502 skip_serializing_if = "Option::is_none"
6503 )]
6504 pub compression_level: Option<i64>,
6505}
6506impl From<&IoArgoprojWorkflowV1alpha1TarStrategy> for IoArgoprojWorkflowV1alpha1TarStrategy {
6507 fn from(value: &IoArgoprojWorkflowV1alpha1TarStrategy) -> Self {
6508 value.clone()
6509 }
6510}
6511
6512pub use IoArgoprojWorkflowV1alpha1TemplateBuilder as TemplateBuilder;
6513pub use IoArgoprojWorkflowV1alpha1TemplateBuilderError as TemplateBuilderError;
6514
6515#[doc = "Template is a reusable and composable unit of execution in a workflow"]
6516#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
6517#[builder(default)]
6518pub struct IoArgoprojWorkflowV1alpha1Template {
6519 #[doc = "Optional duration in seconds relative to the StartTime that the pod may be active on a node before the system actively tries to terminate the pod; value must be positive integer This field is only applicable to container and script templates."]
6520 #[serde(
6521 rename = "activeDeadlineSeconds",
6522 default,
6523 skip_serializing_if = "Option::is_none"
6524 )]
6525 pub active_deadline_seconds: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
6526 #[doc = "Affinity sets the pod's scheduling constraints Overrides the affinity set at the workflow level (if any)"]
6527 #[serde(default, skip_serializing_if = "Option::is_none")]
6528 pub affinity: Option<IoK8sApiCoreV1Affinity>,
6529 #[doc = "Location in which all files related to the step will be stored (logs, artifacts, etc...). Can be overridden by individual items in Outputs. If omitted, will use the default artifact repository location configured in the controller, appended with the <workflowname>/<nodename> in the key."]
6530 #[serde(
6531 rename = "archiveLocation",
6532 default,
6533 skip_serializing_if = "Option::is_none"
6534 )]
6535 pub archive_location: Option<IoArgoprojWorkflowV1alpha1ArtifactLocation>,
6536 #[doc = "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods. ServiceAccountName of ExecutorConfig must be specified if this value is false."]
6537 #[serde(
6538 rename = "automountServiceAccountToken",
6539 default,
6540 skip_serializing_if = "Option::is_none"
6541 )]
6542 pub automount_service_account_token: Option<bool>,
6543 #[doc = "Container is the main container image to run in the pod"]
6544 #[serde(default, skip_serializing_if = "Option::is_none")]
6545 pub container: Option<IoK8sApiCoreV1Container>,
6546 #[doc = "ContainerSet groups multiple containers within a single pod."]
6547 #[serde(
6548 rename = "containerSet",
6549 default,
6550 skip_serializing_if = "Option::is_none"
6551 )]
6552 pub container_set: Option<IoArgoprojWorkflowV1alpha1ContainerSetTemplate>,
6553 #[doc = "Daemon will allow a workflow to proceed to the next step so long as the container reaches readiness"]
6554 #[serde(default, skip_serializing_if = "Option::is_none")]
6555 pub daemon: Option<bool>,
6556 #[doc = "DAG template subtype which runs a DAG"]
6557 #[serde(default, skip_serializing_if = "Option::is_none")]
6558 pub dag: Option<IoArgoprojWorkflowV1alpha1DagTemplate>,
6559 #[doc = "Data is a data template"]
6560 #[serde(default, skip_serializing_if = "Option::is_none")]
6561 pub data: Option<IoArgoprojWorkflowV1alpha1Data>,
6562 #[doc = "Executor holds configurations of the executor container."]
6563 #[serde(default, skip_serializing_if = "Option::is_none")]
6564 pub executor: Option<IoArgoprojWorkflowV1alpha1ExecutorConfig>,
6565 #[doc = "FailFast, if specified, will fail this template if any of its child pods has failed. This is useful for when this template is expanded with `withItems`, etc."]
6566 #[serde(rename = "failFast", default, skip_serializing_if = "Option::is_none")]
6567 pub fail_fast: Option<bool>,
6568 #[doc = "HostAliases is an optional list of hosts and IPs that will be injected into the pod spec"]
6569 #[serde(rename = "hostAliases", default, skip_serializing_if = "Vec::is_empty")]
6570 pub host_aliases: Vec<IoK8sApiCoreV1HostAlias>,
6571 #[doc = "HTTP makes a HTTP request"]
6572 #[serde(default, skip_serializing_if = "Option::is_none")]
6573 pub http: Option<IoArgoprojWorkflowV1alpha1Http>,
6574 #[doc = "InitContainers is a list of containers which run before the main container."]
6575 #[serde(
6576 rename = "initContainers",
6577 default,
6578 skip_serializing_if = "Vec::is_empty"
6579 )]
6580 pub init_containers: Vec<IoArgoprojWorkflowV1alpha1UserContainer>,
6581 #[doc = "Inputs describe what inputs parameters and artifacts are supplied to this template"]
6582 #[serde(default, skip_serializing_if = "Option::is_none")]
6583 pub inputs: Option<IoArgoprojWorkflowV1alpha1Inputs>,
6584 #[doc = "Memoize allows templates to use outputs generated from already executed templates"]
6585 #[serde(default, skip_serializing_if = "Option::is_none")]
6586 pub memoize: Option<IoArgoprojWorkflowV1alpha1Memoize>,
6587 #[doc = "Metdata sets the pods's metadata, i.e. annotations and labels"]
6588 #[serde(default, skip_serializing_if = "Option::is_none")]
6589 pub metadata: Option<IoArgoprojWorkflowV1alpha1Metadata>,
6590 #[doc = "Metrics are a list of metrics emitted from this template"]
6591 #[serde(default, skip_serializing_if = "Option::is_none")]
6592 pub metrics: Option<IoArgoprojWorkflowV1alpha1Metrics>,
6593 #[doc = "Name is the name of the template"]
6594 #[serde(default, skip_serializing_if = "Option::is_none")]
6595 pub name: Option<String>,
6596 #[doc = "NodeSelector is a selector to schedule this step of the workflow to be run on the selected node(s). Overrides the selector set at the workflow level."]
6597 #[serde(
6598 rename = "nodeSelector",
6599 default,
6600 skip_serializing_if = "std::collections::HashMap::is_empty"
6601 )]
6602 pub node_selector: std::collections::HashMap<String, String>,
6603 #[doc = "Outputs describe the parameters and artifacts that this template produces"]
6604 #[serde(default, skip_serializing_if = "Option::is_none")]
6605 pub outputs: Option<IoArgoprojWorkflowV1alpha1Outputs>,
6606 #[doc = "Parallelism limits the max total parallel pods that can execute at the same time within the boundaries of this template invocation. If additional steps/dag templates are invoked, the pods created by those templates will not be counted towards this total."]
6607 #[serde(default, skip_serializing_if = "Option::is_none")]
6608 pub parallelism: Option<i64>,
6609 #[doc = "Plugin is a plugin template"]
6610 #[serde(default, skip_serializing_if = "Option::is_none")]
6611 pub plugin: Option<IoArgoprojWorkflowV1alpha1Plugin>,
6612 #[doc = "PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of container fields which are not strings (e.g. resource limits)."]
6613 #[serde(
6614 rename = "podSpecPatch",
6615 default,
6616 skip_serializing_if = "Option::is_none"
6617 )]
6618 pub pod_spec_patch: Option<String>,
6619 #[doc = "Priority to apply to workflow pods."]
6620 #[serde(default, skip_serializing_if = "Option::is_none")]
6621 pub priority: Option<i64>,
6622 #[doc = "PriorityClassName to apply to workflow pods."]
6623 #[serde(
6624 rename = "priorityClassName",
6625 default,
6626 skip_serializing_if = "Option::is_none"
6627 )]
6628 pub priority_class_name: Option<String>,
6629 #[doc = "Resource template subtype which can run k8s resources"]
6630 #[serde(default, skip_serializing_if = "Option::is_none")]
6631 pub resource: Option<IoArgoprojWorkflowV1alpha1ResourceTemplate>,
6632 #[doc = "RetryStrategy describes how to retry a template when it fails"]
6633 #[serde(
6634 rename = "retryStrategy",
6635 default,
6636 skip_serializing_if = "Option::is_none"
6637 )]
6638 pub retry_strategy: Option<IoArgoprojWorkflowV1alpha1RetryStrategy>,
6639 #[doc = "If specified, the pod will be dispatched by specified scheduler. Or it will be dispatched by workflow scope scheduler if specified. If neither specified, the pod will be dispatched by default scheduler."]
6640 #[serde(
6641 rename = "schedulerName",
6642 default,
6643 skip_serializing_if = "Option::is_none"
6644 )]
6645 pub scheduler_name: Option<String>,
6646 #[doc = "Script runs a portion of code against an interpreter"]
6647 #[serde(default, skip_serializing_if = "Option::is_none")]
6648 pub script: Option<IoArgoprojWorkflowV1alpha1ScriptTemplate>,
6649 #[doc = "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field."]
6650 #[serde(
6651 rename = "securityContext",
6652 default,
6653 skip_serializing_if = "Option::is_none"
6654 )]
6655 pub security_context: Option<IoK8sApiCoreV1PodSecurityContext>,
6656 #[doc = "ServiceAccountName to apply to workflow pods"]
6657 #[serde(
6658 rename = "serviceAccountName",
6659 default,
6660 skip_serializing_if = "Option::is_none"
6661 )]
6662 pub service_account_name: Option<String>,
6663 #[doc = "Sidecars is a list of containers which run alongside the main container Sidecars are automatically killed when the main container completes"]
6664 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6665 pub sidecars: Vec<IoArgoprojWorkflowV1alpha1UserContainer>,
6666 #[doc = "Steps define a series of sequential/parallel workflow steps"]
6667 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6668 pub steps: Vec<IoArgoprojWorkflowV1alpha1ParallelSteps>,
6669 #[doc = "Suspend template subtype which can suspend a workflow when reaching the step"]
6670 #[serde(default, skip_serializing_if = "Option::is_none")]
6671 pub suspend: Option<IoArgoprojWorkflowV1alpha1SuspendTemplate>,
6672 #[doc = "Synchronization holds synchronization lock configuration for this template"]
6673 #[serde(default, skip_serializing_if = "Option::is_none")]
6674 pub synchronization: Option<IoArgoprojWorkflowV1alpha1Synchronization>,
6675 #[doc = "Timeout allows to set the total node execution timeout duration counting from the node's start time. This duration also includes time in which the node spends in Pending state. This duration may not be applied to Step or DAG templates."]
6676 #[serde(default, skip_serializing_if = "Option::is_none")]
6677 pub timeout: Option<String>,
6678 #[doc = "Tolerations to apply to workflow pods."]
6679 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6680 pub tolerations: Vec<IoK8sApiCoreV1Toleration>,
6681 #[doc = "Volumes is a list of volumes that can be mounted by containers in a template."]
6682 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6683 pub volumes: Vec<IoK8sApiCoreV1Volume>,
6684}
6685impl From<&IoArgoprojWorkflowV1alpha1Template> for IoArgoprojWorkflowV1alpha1Template {
6686 fn from(value: &IoArgoprojWorkflowV1alpha1Template) -> Self {
6687 value.clone()
6688 }
6689}
6690#[doc = "TemplateRef is a reference of template resource."]
6691#[derive(Clone, Debug, Deserialize, Serialize)]
6692pub struct IoArgoprojWorkflowV1alpha1TemplateRef {
6693 #[doc = "ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate)."]
6694 #[serde(
6695 rename = "clusterScope",
6696 default,
6697 skip_serializing_if = "Option::is_none"
6698 )]
6699 pub cluster_scope: Option<bool>,
6700 #[doc = "Name is the resource name of the template."]
6701 #[serde(default, skip_serializing_if = "Option::is_none")]
6702 pub name: Option<String>,
6703 #[doc = "Template is the name of referred template in the resource."]
6704 #[serde(default, skip_serializing_if = "Option::is_none")]
6705 pub template: Option<String>,
6706}
6707impl From<&IoArgoprojWorkflowV1alpha1TemplateRef> for IoArgoprojWorkflowV1alpha1TemplateRef {
6708 fn from(value: &IoArgoprojWorkflowV1alpha1TemplateRef) -> Self {
6709 value.clone()
6710 }
6711}
6712#[derive(Clone, Debug, Deserialize, Serialize)]
6713pub struct IoArgoprojWorkflowV1alpha1TransformationStep {
6714 #[doc = "Expression defines an expr expression to apply"]
6715 pub expression: String,
6716}
6717impl From<&IoArgoprojWorkflowV1alpha1TransformationStep>
6718 for IoArgoprojWorkflowV1alpha1TransformationStep
6719{
6720 fn from(value: &IoArgoprojWorkflowV1alpha1TransformationStep) -> Self {
6721 value.clone()
6722 }
6723}
6724#[doc = "TTLStrategy is the strategy for the time to live depending on if the workflow succeeded or failed"]
6725#[derive(Clone, Debug, Deserialize, Serialize)]
6726pub struct IoArgoprojWorkflowV1alpha1TtlStrategy {
6727 #[doc = "SecondsAfterCompletion is the number of seconds to live after completion"]
6728 #[serde(
6729 rename = "secondsAfterCompletion",
6730 default,
6731 skip_serializing_if = "Option::is_none"
6732 )]
6733 pub seconds_after_completion: Option<i64>,
6734 #[doc = "SecondsAfterFailure is the number of seconds to live after failure"]
6735 #[serde(
6736 rename = "secondsAfterFailure",
6737 default,
6738 skip_serializing_if = "Option::is_none"
6739 )]
6740 pub seconds_after_failure: Option<i64>,
6741 #[doc = "SecondsAfterSuccess is the number of seconds to live after success"]
6742 #[serde(
6743 rename = "secondsAfterSuccess",
6744 default,
6745 skip_serializing_if = "Option::is_none"
6746 )]
6747 pub seconds_after_success: Option<i64>,
6748}
6749impl From<&IoArgoprojWorkflowV1alpha1TtlStrategy> for IoArgoprojWorkflowV1alpha1TtlStrategy {
6750 fn from(value: &IoArgoprojWorkflowV1alpha1TtlStrategy) -> Self {
6751 value.clone()
6752 }
6753}
6754#[derive(Clone, Debug, Deserialize, Serialize)]
6755pub struct IoArgoprojWorkflowV1alpha1UpdateCronWorkflowRequest {
6756 #[serde(
6757 rename = "cronWorkflow",
6758 default,
6759 skip_serializing_if = "Option::is_none"
6760 )]
6761 pub cron_workflow: Option<IoArgoprojWorkflowV1alpha1CronWorkflow>,
6762 #[doc = "DEPRECATED: This field is ignored."]
6763 #[serde(default, skip_serializing_if = "Option::is_none")]
6764 pub name: Option<String>,
6765 #[serde(default, skip_serializing_if = "Option::is_none")]
6766 pub namespace: Option<String>,
6767}
6768impl From<&IoArgoprojWorkflowV1alpha1UpdateCronWorkflowRequest>
6769 for IoArgoprojWorkflowV1alpha1UpdateCronWorkflowRequest
6770{
6771 fn from(value: &IoArgoprojWorkflowV1alpha1UpdateCronWorkflowRequest) -> Self {
6772 value.clone()
6773 }
6774}
6775
6776pub use IoArgoprojWorkflowV1alpha1UserContainerBuilder as UserContainerBuilder;
6777pub use IoArgoprojWorkflowV1alpha1UserContainerBuilderError as UserContainerBuilderError;
6778
6779#[doc = "UserContainer is a container specified by a user."]
6780#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
6781#[builder(default)]
6782pub struct IoArgoprojWorkflowV1alpha1UserContainer {
6783 #[doc = "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
6784 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6785 pub args: Vec<String>,
6786 #[doc = "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
6787 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6788 pub command: Vec<String>,
6789 #[doc = "List of environment variables to set in the container. Cannot be updated."]
6790 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6791 pub env: Vec<IoK8sApiCoreV1EnvVar>,
6792 #[doc = "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated."]
6793 #[serde(rename = "envFrom", default, skip_serializing_if = "Vec::is_empty")]
6794 pub env_from: Vec<IoK8sApiCoreV1EnvFromSource>,
6795 #[doc = "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."]
6796 #[serde(default, skip_serializing_if = "Option::is_none")]
6797 pub image: Option<String>,
6798 #[doc = "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images"]
6799 #[serde(
6800 rename = "imagePullPolicy",
6801 default,
6802 skip_serializing_if = "Option::is_none"
6803 )]
6804 pub image_pull_policy: Option<String>,
6805 #[doc = "Actions that the management system should take in response to container lifecycle events. Cannot be updated."]
6806 #[serde(default, skip_serializing_if = "Option::is_none")]
6807 pub lifecycle: Option<IoK8sApiCoreV1Lifecycle>,
6808 #[doc = "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
6809 #[serde(
6810 rename = "livenessProbe",
6811 default,
6812 skip_serializing_if = "Option::is_none"
6813 )]
6814 pub liveness_probe: Option<IoK8sApiCoreV1Probe>,
6815 #[doc = "MirrorVolumeMounts will mount the same volumes specified in the main container to the container (including artifacts), at the same mountPaths. This enables dind daemon to partially see the same filesystem as the main container in order to use features such as docker volume binding"]
6816 #[serde(
6817 rename = "mirrorVolumeMounts",
6818 default,
6819 skip_serializing_if = "Option::is_none"
6820 )]
6821 pub mirror_volume_mounts: Option<bool>,
6822 #[doc = "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated."]
6823 pub name: String,
6824 #[doc = "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated."]
6825 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6826 pub ports: Vec<IoK8sApiCoreV1ContainerPort>,
6827 #[doc = "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
6828 #[serde(
6829 rename = "readinessProbe",
6830 default,
6831 skip_serializing_if = "Option::is_none"
6832 )]
6833 pub readiness_probe: Option<IoK8sApiCoreV1Probe>,
6834 #[doc = "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"]
6835 #[serde(default, skip_serializing_if = "Option::is_none")]
6836 pub resources: Option<IoK8sApiCoreV1ResourceRequirements>,
6837 #[doc = "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"]
6838 #[serde(
6839 rename = "securityContext",
6840 default,
6841 skip_serializing_if = "Option::is_none"
6842 )]
6843 pub security_context: Option<IoK8sApiCoreV1SecurityContext>,
6844 #[doc = "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
6845 #[serde(
6846 rename = "startupProbe",
6847 default,
6848 skip_serializing_if = "Option::is_none"
6849 )]
6850 pub startup_probe: Option<IoK8sApiCoreV1Probe>,
6851 #[doc = "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false."]
6852 #[serde(default, skip_serializing_if = "Option::is_none")]
6853 pub stdin: Option<bool>,
6854 #[doc = "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false"]
6855 #[serde(rename = "stdinOnce", default, skip_serializing_if = "Option::is_none")]
6856 pub stdin_once: Option<bool>,
6857 #[doc = "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."]
6858 #[serde(
6859 rename = "terminationMessagePath",
6860 default,
6861 skip_serializing_if = "Option::is_none"
6862 )]
6863 pub termination_message_path: Option<String>,
6864 #[doc = "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated."]
6865 #[serde(
6866 rename = "terminationMessagePolicy",
6867 default,
6868 skip_serializing_if = "Option::is_none"
6869 )]
6870 pub termination_message_policy: Option<String>,
6871 #[doc = "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false."]
6872 #[serde(default, skip_serializing_if = "Option::is_none")]
6873 pub tty: Option<bool>,
6874 #[doc = "volumeDevices is the list of block devices to be used by the container."]
6875 #[serde(
6876 rename = "volumeDevices",
6877 default,
6878 skip_serializing_if = "Vec::is_empty"
6879 )]
6880 pub volume_devices: Vec<IoK8sApiCoreV1VolumeDevice>,
6881 #[doc = "Pod volumes to mount into the container's filesystem. Cannot be updated."]
6882 #[serde(
6883 rename = "volumeMounts",
6884 default,
6885 skip_serializing_if = "Vec::is_empty"
6886 )]
6887 pub volume_mounts: Vec<IoK8sApiCoreV1VolumeMount>,
6888 #[doc = "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated."]
6889 #[serde(
6890 rename = "workingDir",
6891 default,
6892 skip_serializing_if = "Option::is_none"
6893 )]
6894 pub working_dir: Option<String>,
6895}
6896impl From<&IoArgoprojWorkflowV1alpha1UserContainer> for IoArgoprojWorkflowV1alpha1UserContainer {
6897 fn from(value: &IoArgoprojWorkflowV1alpha1UserContainer) -> Self {
6898 value.clone()
6899 }
6900}
6901#[doc = "ValueFrom describes a location in which to obtain the value to a parameter"]
6902#[derive(Clone, Debug, Deserialize, Serialize)]
6903pub struct IoArgoprojWorkflowV1alpha1ValueFrom {
6904 #[doc = "ConfigMapKeyRef is configmap selector for input parameter configuration"]
6905 #[serde(
6906 rename = "configMapKeyRef",
6907 default,
6908 skip_serializing_if = "Option::is_none"
6909 )]
6910 pub config_map_key_ref: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
6911 #[doc = "Default specifies a value to be used if retrieving the value from the specified source fails"]
6912 #[serde(default, skip_serializing_if = "Option::is_none")]
6913 pub default: Option<String>,
6914 #[doc = "Selector (https://github.com/antonmedv/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`"]
6915 #[serde(default, skip_serializing_if = "Option::is_none")]
6916 pub event: Option<String>,
6917 #[doc = "Expression, if defined, is evaluated to specify the value for the parameter"]
6918 #[serde(default, skip_serializing_if = "Option::is_none")]
6919 pub expression: Option<String>,
6920 #[doc = "JQFilter expression against the resource object in resource templates"]
6921 #[serde(rename = "jqFilter", default, skip_serializing_if = "Option::is_none")]
6922 pub jq_filter: Option<String>,
6923 #[doc = "JSONPath of a resource to retrieve an output parameter value from in resource templates"]
6924 #[serde(rename = "jsonPath", default, skip_serializing_if = "Option::is_none")]
6925 pub json_path: Option<String>,
6926 #[doc = "Parameter reference to a step or dag task in which to retrieve an output parameter value from (e.g. '{{steps.mystep.outputs.myparam}}')"]
6927 #[serde(default, skip_serializing_if = "Option::is_none")]
6928 pub parameter: Option<String>,
6929 #[doc = "Path in the container to retrieve an output parameter value from in container templates"]
6930 #[serde(default, skip_serializing_if = "Option::is_none")]
6931 pub path: Option<String>,
6932 #[doc = "Supplied value to be filled in directly, either through the CLI, API, etc."]
6933 #[serde(default, skip_serializing_if = "Option::is_none")]
6934 pub supplied: Option<IoArgoprojWorkflowV1alpha1SuppliedValueFrom>,
6935}
6936impl From<&IoArgoprojWorkflowV1alpha1ValueFrom> for IoArgoprojWorkflowV1alpha1ValueFrom {
6937 fn from(value: &IoArgoprojWorkflowV1alpha1ValueFrom) -> Self {
6938 value.clone()
6939 }
6940}
6941#[derive(Clone, Debug, Deserialize, Serialize)]
6942pub struct IoArgoprojWorkflowV1alpha1Version {
6943 #[serde(rename = "buildDate")]
6944 pub build_date: String,
6945 pub compiler: String,
6946 #[serde(rename = "gitCommit")]
6947 pub git_commit: String,
6948 #[serde(rename = "gitTag")]
6949 pub git_tag: String,
6950 #[serde(rename = "gitTreeState")]
6951 pub git_tree_state: String,
6952 #[serde(rename = "goVersion")]
6953 pub go_version: String,
6954 pub platform: String,
6955 pub version: String,
6956}
6957impl From<&IoArgoprojWorkflowV1alpha1Version> for IoArgoprojWorkflowV1alpha1Version {
6958 fn from(value: &IoArgoprojWorkflowV1alpha1Version) -> Self {
6959 value.clone()
6960 }
6961}
6962#[doc = "VolumeClaimGC describes how to delete volumes from completed Workflows"]
6963#[derive(Clone, Debug, Deserialize, Serialize)]
6964pub struct IoArgoprojWorkflowV1alpha1VolumeClaimGc {
6965 #[doc = "Strategy is the strategy to use. One of \"OnWorkflowCompletion\", \"OnWorkflowSuccess\". Defaults to \"OnWorkflowSuccess\""]
6966 #[serde(default, skip_serializing_if = "Option::is_none")]
6967 pub strategy: Option<String>,
6968}
6969impl From<&IoArgoprojWorkflowV1alpha1VolumeClaimGc> for IoArgoprojWorkflowV1alpha1VolumeClaimGc {
6970 fn from(value: &IoArgoprojWorkflowV1alpha1VolumeClaimGc) -> Self {
6971 value.clone()
6972 }
6973}
6974#[doc = "Workflow is the definition of a workflow resource"]
6975#[derive(Clone, Debug, Deserialize, Serialize)]
6976pub struct IoArgoprojWorkflowV1alpha1Workflow {
6977 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
6978 #[serde(
6979 rename = "apiVersion",
6980 default,
6981 skip_serializing_if = "Option::is_none"
6982 )]
6983 pub api_version: Option<String>,
6984 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
6985 #[serde(default, skip_serializing_if = "Option::is_none")]
6986 pub kind: Option<String>,
6987 pub metadata: IoK8sApimachineryPkgApisMetaV1ObjectMeta,
6988 pub spec: IoArgoprojWorkflowV1alpha1WorkflowSpec,
6989 #[serde(default, skip_serializing_if = "Option::is_none")]
6990 pub status: Option<IoArgoprojWorkflowV1alpha1WorkflowStatus>,
6991}
6992impl From<&IoArgoprojWorkflowV1alpha1Workflow> for IoArgoprojWorkflowV1alpha1Workflow {
6993 fn from(value: &IoArgoprojWorkflowV1alpha1Workflow) -> Self {
6994 value.clone()
6995 }
6996}
6997#[derive(Clone, Debug, Deserialize, Serialize)]
6998pub struct IoArgoprojWorkflowV1alpha1WorkflowCreateRequest {
6999 #[serde(
7000 rename = "createOptions",
7001 default,
7002 skip_serializing_if = "Option::is_none"
7003 )]
7004 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
7005 #[doc = "This field is no longer used."]
7006 #[serde(
7007 rename = "instanceID",
7008 default,
7009 skip_serializing_if = "Option::is_none"
7010 )]
7011 pub instance_id: Option<String>,
7012 #[serde(default, skip_serializing_if = "Option::is_none")]
7013 pub namespace: Option<String>,
7014 #[serde(
7015 rename = "serverDryRun",
7016 default,
7017 skip_serializing_if = "Option::is_none"
7018 )]
7019 pub server_dry_run: Option<bool>,
7020 #[serde(default, skip_serializing_if = "Option::is_none")]
7021 pub workflow: Option<IoArgoprojWorkflowV1alpha1Workflow>,
7022}
7023impl From<&IoArgoprojWorkflowV1alpha1WorkflowCreateRequest>
7024 for IoArgoprojWorkflowV1alpha1WorkflowCreateRequest
7025{
7026 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowCreateRequest) -> Self {
7027 value.clone()
7028 }
7029}
7030#[derive(Clone, Debug, Deserialize, Serialize)]
7031pub struct IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse(
7032 pub serde_json::Map<String, serde_json::Value>,
7033);
7034impl std::ops::Deref for IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse {
7035 type Target = serde_json::Map<String, serde_json::Value>;
7036 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
7037 &self.0
7038 }
7039}
7040impl From<IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse>
7041 for serde_json::Map<String, serde_json::Value>
7042{
7043 fn from(value: IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse) -> Self {
7044 value.0
7045 }
7046}
7047impl From<&IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse>
7048 for IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse
7049{
7050 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse) -> Self {
7051 value.clone()
7052 }
7053}
7054impl From<serde_json::Map<String, serde_json::Value>>
7055 for IoArgoprojWorkflowV1alpha1WorkflowDeleteResponse
7056{
7057 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
7058 Self(value)
7059 }
7060}
7061#[doc = "WorkflowEventBinding is the definition of an event resource"]
7062#[derive(Clone, Debug, Deserialize, Serialize)]
7063pub struct IoArgoprojWorkflowV1alpha1WorkflowEventBinding {
7064 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
7065 #[serde(
7066 rename = "apiVersion",
7067 default,
7068 skip_serializing_if = "Option::is_none"
7069 )]
7070 pub api_version: Option<String>,
7071 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
7072 #[serde(default, skip_serializing_if = "Option::is_none")]
7073 pub kind: Option<String>,
7074 pub metadata: IoK8sApimachineryPkgApisMetaV1ObjectMeta,
7075 pub spec: IoArgoprojWorkflowV1alpha1WorkflowEventBindingSpec,
7076}
7077impl From<&IoArgoprojWorkflowV1alpha1WorkflowEventBinding>
7078 for IoArgoprojWorkflowV1alpha1WorkflowEventBinding
7079{
7080 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowEventBinding) -> Self {
7081 value.clone()
7082 }
7083}
7084#[doc = "WorkflowEventBindingList is list of event resources"]
7085#[derive(Clone, Debug, Deserialize, Serialize)]
7086pub struct IoArgoprojWorkflowV1alpha1WorkflowEventBindingList {
7087 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
7088 #[serde(
7089 rename = "apiVersion",
7090 default,
7091 skip_serializing_if = "Option::is_none"
7092 )]
7093 pub api_version: Option<String>,
7094 pub items: Vec<IoArgoprojWorkflowV1alpha1WorkflowEventBinding>,
7095 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
7096 #[serde(default, skip_serializing_if = "Option::is_none")]
7097 pub kind: Option<String>,
7098 pub metadata: IoK8sApimachineryPkgApisMetaV1ListMeta,
7099}
7100impl From<&IoArgoprojWorkflowV1alpha1WorkflowEventBindingList>
7101 for IoArgoprojWorkflowV1alpha1WorkflowEventBindingList
7102{
7103 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowEventBindingList) -> Self {
7104 value.clone()
7105 }
7106}
7107#[derive(Clone, Debug, Deserialize, Serialize)]
7108pub struct IoArgoprojWorkflowV1alpha1WorkflowEventBindingSpec {
7109 #[doc = "Event is the event to bind to"]
7110 pub event: IoArgoprojWorkflowV1alpha1Event,
7111 #[doc = "Submit is the workflow template to submit"]
7112 #[serde(default, skip_serializing_if = "Option::is_none")]
7113 pub submit: Option<IoArgoprojWorkflowV1alpha1Submit>,
7114}
7115impl From<&IoArgoprojWorkflowV1alpha1WorkflowEventBindingSpec>
7116 for IoArgoprojWorkflowV1alpha1WorkflowEventBindingSpec
7117{
7118 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowEventBindingSpec) -> Self {
7119 value.clone()
7120 }
7121}
7122#[doc = "WorkflowLevelArtifactGC describes how to delete artifacts from completed Workflows - this spec is used on the Workflow level"]
7123#[derive(Clone, Debug, Deserialize, Serialize)]
7124pub struct IoArgoprojWorkflowV1alpha1WorkflowLevelArtifactGc {
7125 #[doc = "ForceFinalizerRemoval: if set to true, the finalizer will be removed in the case that Artifact GC fails"]
7126 #[serde(
7127 rename = "forceFinalizerRemoval",
7128 default,
7129 skip_serializing_if = "Option::is_none"
7130 )]
7131 pub force_finalizer_removal: Option<bool>,
7132 #[doc = "PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion"]
7133 #[serde(
7134 rename = "podMetadata",
7135 default,
7136 skip_serializing_if = "Option::is_none"
7137 )]
7138 pub pod_metadata: Option<IoArgoprojWorkflowV1alpha1Metadata>,
7139 #[doc = "PodSpecPatch holds strategic merge patch to apply against the artgc pod spec."]
7140 #[serde(
7141 rename = "podSpecPatch",
7142 default,
7143 skip_serializing_if = "Option::is_none"
7144 )]
7145 pub pod_spec_patch: Option<String>,
7146 #[doc = "ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion"]
7147 #[serde(
7148 rename = "serviceAccountName",
7149 default,
7150 skip_serializing_if = "Option::is_none"
7151 )]
7152 pub service_account_name: Option<String>,
7153 #[doc = "Strategy is the strategy to use."]
7154 #[serde(default, skip_serializing_if = "Option::is_none")]
7155 pub strategy: Option<String>,
7156}
7157impl From<&IoArgoprojWorkflowV1alpha1WorkflowLevelArtifactGc>
7158 for IoArgoprojWorkflowV1alpha1WorkflowLevelArtifactGc
7159{
7160 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowLevelArtifactGc) -> Self {
7161 value.clone()
7162 }
7163}
7164#[derive(Clone, Debug, Deserialize, Serialize)]
7165pub struct IoArgoprojWorkflowV1alpha1WorkflowLintRequest {
7166 #[serde(default, skip_serializing_if = "Option::is_none")]
7167 pub namespace: Option<String>,
7168 #[serde(default, skip_serializing_if = "Option::is_none")]
7169 pub workflow: Option<IoArgoprojWorkflowV1alpha1Workflow>,
7170}
7171impl From<&IoArgoprojWorkflowV1alpha1WorkflowLintRequest>
7172 for IoArgoprojWorkflowV1alpha1WorkflowLintRequest
7173{
7174 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowLintRequest) -> Self {
7175 value.clone()
7176 }
7177}
7178#[doc = "WorkflowList is list of Workflow resources"]
7179#[derive(Clone, Debug, Deserialize, Serialize)]
7180pub struct IoArgoprojWorkflowV1alpha1WorkflowList {
7181 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
7182 #[serde(
7183 rename = "apiVersion",
7184 default,
7185 skip_serializing_if = "Option::is_none"
7186 )]
7187 pub api_version: Option<String>,
7188 pub items: Vec<IoArgoprojWorkflowV1alpha1Workflow>,
7189 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
7190 #[serde(default, skip_serializing_if = "Option::is_none")]
7191 pub kind: Option<String>,
7192 pub metadata: IoK8sApimachineryPkgApisMetaV1ListMeta,
7193}
7194impl From<&IoArgoprojWorkflowV1alpha1WorkflowList> for IoArgoprojWorkflowV1alpha1WorkflowList {
7195 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowList) -> Self {
7196 value.clone()
7197 }
7198}
7199#[derive(Clone, Debug, Deserialize, Serialize)]
7200pub struct IoArgoprojWorkflowV1alpha1WorkflowMetadata {
7201 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7202 pub annotations: std::collections::HashMap<String, String>,
7203 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7204 pub labels: std::collections::HashMap<String, String>,
7205 #[serde(
7206 rename = "labelsFrom",
7207 default,
7208 skip_serializing_if = "std::collections::HashMap::is_empty"
7209 )]
7210 pub labels_from: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1LabelValueFrom>,
7211}
7212impl From<&IoArgoprojWorkflowV1alpha1WorkflowMetadata>
7213 for IoArgoprojWorkflowV1alpha1WorkflowMetadata
7214{
7215 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowMetadata) -> Self {
7216 value.clone()
7217 }
7218}
7219#[derive(Clone, Debug, Deserialize, Serialize)]
7220pub struct IoArgoprojWorkflowV1alpha1WorkflowResubmitRequest {
7221 #[serde(default, skip_serializing_if = "Option::is_none")]
7222 pub memoized: Option<bool>,
7223 #[serde(default, skip_serializing_if = "Option::is_none")]
7224 pub name: Option<String>,
7225 #[serde(default, skip_serializing_if = "Option::is_none")]
7226 pub namespace: Option<String>,
7227 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7228 pub parameters: Vec<String>,
7229}
7230impl From<&IoArgoprojWorkflowV1alpha1WorkflowResubmitRequest>
7231 for IoArgoprojWorkflowV1alpha1WorkflowResubmitRequest
7232{
7233 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowResubmitRequest) -> Self {
7234 value.clone()
7235 }
7236}
7237#[derive(Clone, Debug, Deserialize, Serialize)]
7238pub struct IoArgoprojWorkflowV1alpha1WorkflowResumeRequest {
7239 #[serde(default, skip_serializing_if = "Option::is_none")]
7240 pub name: Option<String>,
7241 #[serde(default, skip_serializing_if = "Option::is_none")]
7242 pub namespace: Option<String>,
7243 #[serde(
7244 rename = "nodeFieldSelector",
7245 default,
7246 skip_serializing_if = "Option::is_none"
7247 )]
7248 pub node_field_selector: Option<String>,
7249}
7250impl From<&IoArgoprojWorkflowV1alpha1WorkflowResumeRequest>
7251 for IoArgoprojWorkflowV1alpha1WorkflowResumeRequest
7252{
7253 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowResumeRequest) -> Self {
7254 value.clone()
7255 }
7256}
7257#[derive(Clone, Debug, Deserialize, Serialize)]
7258pub struct IoArgoprojWorkflowV1alpha1WorkflowRetryRequest {
7259 #[serde(default, skip_serializing_if = "Option::is_none")]
7260 pub name: Option<String>,
7261 #[serde(default, skip_serializing_if = "Option::is_none")]
7262 pub namespace: Option<String>,
7263 #[serde(
7264 rename = "nodeFieldSelector",
7265 default,
7266 skip_serializing_if = "Option::is_none"
7267 )]
7268 pub node_field_selector: Option<String>,
7269 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7270 pub parameters: Vec<String>,
7271 #[serde(
7272 rename = "restartSuccessful",
7273 default,
7274 skip_serializing_if = "Option::is_none"
7275 )]
7276 pub restart_successful: Option<bool>,
7277}
7278impl From<&IoArgoprojWorkflowV1alpha1WorkflowRetryRequest>
7279 for IoArgoprojWorkflowV1alpha1WorkflowRetryRequest
7280{
7281 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowRetryRequest) -> Self {
7282 value.clone()
7283 }
7284}
7285#[derive(Clone, Debug, Deserialize, Serialize)]
7286pub struct IoArgoprojWorkflowV1alpha1WorkflowSetRequest {
7287 #[serde(default, skip_serializing_if = "Option::is_none")]
7288 pub message: Option<String>,
7289 #[serde(default, skip_serializing_if = "Option::is_none")]
7290 pub name: Option<String>,
7291 #[serde(default, skip_serializing_if = "Option::is_none")]
7292 pub namespace: Option<String>,
7293 #[serde(
7294 rename = "nodeFieldSelector",
7295 default,
7296 skip_serializing_if = "Option::is_none"
7297 )]
7298 pub node_field_selector: Option<String>,
7299 #[serde(
7300 rename = "outputParameters",
7301 default,
7302 skip_serializing_if = "Option::is_none"
7303 )]
7304 pub output_parameters: Option<String>,
7305 #[serde(default, skip_serializing_if = "Option::is_none")]
7306 pub phase: Option<String>,
7307}
7308impl From<&IoArgoprojWorkflowV1alpha1WorkflowSetRequest>
7309 for IoArgoprojWorkflowV1alpha1WorkflowSetRequest
7310{
7311 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowSetRequest) -> Self {
7312 value.clone()
7313 }
7314}
7315
7316pub use IoArgoprojWorkflowV1alpha1WorkflowSpecBuilder as WorkflowSpecBuilder;
7317pub use IoArgoprojWorkflowV1alpha1WorkflowSpecBuilderError as WorkflowSpecBuilderError;
7318
7319#[doc = "WorkflowSpec is the specification of a Workflow."]
7320#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
7321#[builder(default)]
7322pub struct IoArgoprojWorkflowV1alpha1WorkflowSpec {
7323 #[doc = "Optional duration in seconds relative to the workflow start time which the workflow is allowed to run before the controller terminates the io.argoproj.workflow.v1alpha1. A value of zero is used to terminate a Running workflow"]
7324 #[serde(
7325 rename = "activeDeadlineSeconds",
7326 default,
7327 skip_serializing_if = "Option::is_none"
7328 )]
7329 pub active_deadline_seconds: Option<i64>,
7330 #[doc = "Affinity sets the scheduling constraints for all pods in the io.argoproj.workflow.v1alpha1. Can be overridden by an affinity specified in the template"]
7331 #[serde(default, skip_serializing_if = "Option::is_none")]
7332 pub affinity: Option<IoK8sApiCoreV1Affinity>,
7333 #[doc = "ArchiveLogs indicates if the container logs should be archived"]
7334 #[serde(
7335 rename = "archiveLogs",
7336 default,
7337 skip_serializing_if = "Option::is_none"
7338 )]
7339 pub archive_logs: Option<bool>,
7340 #[doc = "Arguments contain the parameters and artifacts sent to the workflow entrypoint Parameters are referencable globally using the 'workflow' variable prefix. e.g. {{io.argoproj.workflow.v1alpha1.parameters.myparam}}"]
7341 #[serde(default, skip_serializing_if = "Option::is_none")]
7342 pub arguments: Option<IoArgoprojWorkflowV1alpha1Arguments>,
7343 #[doc = "ArtifactGC describes the strategy to use when deleting artifacts from completed or deleted workflows (applies to all output Artifacts unless Artifact.ArtifactGC is specified, which overrides this)"]
7344 #[serde(
7345 rename = "artifactGC",
7346 default,
7347 skip_serializing_if = "Option::is_none"
7348 )]
7349 pub artifact_gc: Option<IoArgoprojWorkflowV1alpha1WorkflowLevelArtifactGc>,
7350 #[doc = "ArtifactRepositoryRef specifies the configMap name and key containing the artifact repository config."]
7351 #[serde(
7352 rename = "artifactRepositoryRef",
7353 default,
7354 skip_serializing_if = "Option::is_none"
7355 )]
7356 pub artifact_repository_ref: Option<IoArgoprojWorkflowV1alpha1ArtifactRepositoryRef>,
7357 #[doc = "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods. ServiceAccountName of ExecutorConfig must be specified if this value is false."]
7358 #[serde(
7359 rename = "automountServiceAccountToken",
7360 default,
7361 skip_serializing_if = "Option::is_none"
7362 )]
7363 pub automount_service_account_token: Option<bool>,
7364 #[doc = "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy."]
7365 #[serde(rename = "dnsConfig", default, skip_serializing_if = "Option::is_none")]
7366 pub dns_config: Option<IoK8sApiCoreV1PodDnsConfig>,
7367 #[doc = "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'."]
7368 #[serde(rename = "dnsPolicy", default, skip_serializing_if = "Option::is_none")]
7369 pub dns_policy: Option<String>,
7370 #[doc = "Entrypoint is a template reference to the starting point of the io.argoproj.workflow.v1alpha1."]
7371 #[serde(default, skip_serializing_if = "Option::is_none")]
7372 pub entrypoint: Option<String>,
7373 #[doc = "Executor holds configurations of executor containers of the io.argoproj.workflow.v1alpha1."]
7374 #[serde(default, skip_serializing_if = "Option::is_none")]
7375 pub executor: Option<IoArgoprojWorkflowV1alpha1ExecutorConfig>,
7376 #[doc = "Hooks holds the lifecycle hook which is invoked at lifecycle of step, irrespective of the success, failure, or error status of the primary step"]
7377 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7378 pub hooks: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1LifecycleHook>,
7379 #[serde(rename = "hostAliases", default, skip_serializing_if = "Vec::is_empty")]
7380 pub host_aliases: Vec<IoK8sApiCoreV1HostAlias>,
7381 #[doc = "Host networking requested for this workflow pod. Default to false."]
7382 #[serde(
7383 rename = "hostNetwork",
7384 default,
7385 skip_serializing_if = "Option::is_none"
7386 )]
7387 pub host_network: Option<bool>,
7388 #[doc = "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod"]
7389 #[serde(
7390 rename = "imagePullSecrets",
7391 default,
7392 skip_serializing_if = "Vec::is_empty"
7393 )]
7394 pub image_pull_secrets: Vec<IoK8sApiCoreV1LocalObjectReference>,
7395 #[doc = "Metrics are a list of metrics emitted from this Workflow"]
7396 #[serde(default, skip_serializing_if = "Option::is_none")]
7397 pub metrics: Option<IoArgoprojWorkflowV1alpha1Metrics>,
7398 #[doc = "NodeSelector is a selector which will result in all pods of the workflow to be scheduled on the selected node(s). This is able to be overridden by a nodeSelector specified in the template."]
7399 #[serde(
7400 rename = "nodeSelector",
7401 default,
7402 skip_serializing_if = "std::collections::HashMap::is_empty"
7403 )]
7404 pub node_selector: std::collections::HashMap<String, String>,
7405 #[doc = "OnExit is a template reference which is invoked at the end of the workflow, irrespective of the success, failure, or error of the primary io.argoproj.workflow.v1alpha1."]
7406 #[serde(rename = "onExit", default, skip_serializing_if = "Option::is_none")]
7407 pub on_exit: Option<String>,
7408 #[doc = "Parallelism limits the max total parallel pods that can execute at the same time in a workflow"]
7409 #[serde(default, skip_serializing_if = "Option::is_none")]
7410 pub parallelism: Option<i64>,
7411 #[doc = "PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow's Pods. Controller will automatically add the selector with workflow name, if selector is empty. Optional: Defaults to empty."]
7412 #[serde(
7413 rename = "podDisruptionBudget",
7414 default,
7415 skip_serializing_if = "Option::is_none"
7416 )]
7417 pub pod_disruption_budget: Option<IoK8sApiPolicyV1PodDisruptionBudgetSpec>,
7418 #[doc = "PodGC describes the strategy to use when deleting completed pods"]
7419 #[serde(rename = "podGC", default, skip_serializing_if = "Option::is_none")]
7420 pub pod_gc: Option<IoArgoprojWorkflowV1alpha1PodGc>,
7421 #[doc = "PodMetadata defines additional metadata that should be applied to workflow pods"]
7422 #[serde(
7423 rename = "podMetadata",
7424 default,
7425 skip_serializing_if = "Option::is_none"
7426 )]
7427 pub pod_metadata: Option<IoArgoprojWorkflowV1alpha1Metadata>,
7428 #[doc = "Priority to apply to workflow pods. DEPRECATED: Use PodPriorityClassName instead."]
7429 #[serde(
7430 rename = "podPriority",
7431 default,
7432 skip_serializing_if = "Option::is_none"
7433 )]
7434 pub pod_priority: Option<i64>,
7435 #[doc = "PriorityClassName to apply to workflow pods."]
7436 #[serde(
7437 rename = "podPriorityClassName",
7438 default,
7439 skip_serializing_if = "Option::is_none"
7440 )]
7441 pub pod_priority_class_name: Option<String>,
7442 #[doc = "PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of container fields which are not strings (e.g. resource limits)."]
7443 #[serde(
7444 rename = "podSpecPatch",
7445 default,
7446 skip_serializing_if = "Option::is_none"
7447 )]
7448 pub pod_spec_patch: Option<String>,
7449 #[doc = "Priority is used if controller is configured to process limited number of workflows in parallel. Workflows with higher priority are processed first."]
7450 #[serde(default, skip_serializing_if = "Option::is_none")]
7451 pub priority: Option<i64>,
7452 #[doc = "RetryStrategy for all templates in the io.argoproj.workflow.v1alpha1."]
7453 #[serde(
7454 rename = "retryStrategy",
7455 default,
7456 skip_serializing_if = "Option::is_none"
7457 )]
7458 pub retry_strategy: Option<IoArgoprojWorkflowV1alpha1RetryStrategy>,
7459 #[doc = "Set scheduler name for all pods. Will be overridden if container/script template's scheduler name is set. Default scheduler will be used if neither specified."]
7460 #[serde(
7461 rename = "schedulerName",
7462 default,
7463 skip_serializing_if = "Option::is_none"
7464 )]
7465 pub scheduler_name: Option<String>,
7466 #[doc = "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field."]
7467 #[serde(
7468 rename = "securityContext",
7469 default,
7470 skip_serializing_if = "Option::is_none"
7471 )]
7472 pub security_context: Option<IoK8sApiCoreV1PodSecurityContext>,
7473 #[doc = "ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as."]
7474 #[serde(
7475 rename = "serviceAccountName",
7476 default,
7477 skip_serializing_if = "Option::is_none"
7478 )]
7479 pub service_account_name: Option<String>,
7480 #[doc = "Shutdown will shutdown the workflow according to its ShutdownStrategy"]
7481 #[serde(default, skip_serializing_if = "Option::is_none")]
7482 pub shutdown: Option<String>,
7483 #[doc = "Suspend will suspend the workflow and prevent execution of any future steps in the workflow"]
7484 #[serde(default, skip_serializing_if = "Option::is_none")]
7485 pub suspend: Option<bool>,
7486 #[doc = "Synchronization holds synchronization lock configuration for this Workflow"]
7487 #[serde(default, skip_serializing_if = "Option::is_none")]
7488 pub synchronization: Option<IoArgoprojWorkflowV1alpha1Synchronization>,
7489 #[doc = "TemplateDefaults holds default template values that will apply to all templates in the Workflow, unless overridden on the template-level"]
7490 #[serde(
7491 rename = "templateDefaults",
7492 default,
7493 skip_serializing_if = "Option::is_none"
7494 )]
7495 pub template_defaults: Option<IoArgoprojWorkflowV1alpha1Template>,
7496 #[doc = "Templates is a list of workflow templates used in a workflow"]
7497 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7498 pub templates: Vec<IoArgoprojWorkflowV1alpha1Template>,
7499 #[doc = "Tolerations to apply to workflow pods."]
7500 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7501 pub tolerations: Vec<IoK8sApiCoreV1Toleration>,
7502 #[doc = "TTLStrategy limits the lifetime of a Workflow that has finished execution depending on if it Succeeded or Failed. If this struct is set, once the Workflow finishes, it will be deleted after the time to live expires. If this field is unset, the controller config map will hold the default values."]
7503 #[serde(
7504 rename = "ttlStrategy",
7505 default,
7506 skip_serializing_if = "Option::is_none"
7507 )]
7508 pub ttl_strategy: Option<IoArgoprojWorkflowV1alpha1TtlStrategy>,
7509 #[doc = "VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows"]
7510 #[serde(
7511 rename = "volumeClaimGC",
7512 default,
7513 skip_serializing_if = "Option::is_none"
7514 )]
7515 pub volume_claim_gc: Option<IoArgoprojWorkflowV1alpha1VolumeClaimGc>,
7516 #[doc = "VolumeClaimTemplates is a list of claims that containers are allowed to reference. The Workflow controller will create the claims at the beginning of the workflow and delete the claims upon completion of the workflow"]
7517 #[serde(
7518 rename = "volumeClaimTemplates",
7519 default,
7520 skip_serializing_if = "Vec::is_empty"
7521 )]
7522 pub volume_claim_templates: Vec<IoK8sApiCoreV1PersistentVolumeClaim>,
7523 #[doc = "Volumes is a list of volumes that can be mounted by containers in a io.argoproj.workflow.v1alpha1."]
7524 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7525 pub volumes: Vec<IoK8sApiCoreV1Volume>,
7526 #[doc = "WorkflowMetadata contains some metadata of the workflow to refer to"]
7527 #[serde(
7528 rename = "workflowMetadata",
7529 default,
7530 skip_serializing_if = "Option::is_none"
7531 )]
7532 pub workflow_metadata: Option<IoArgoprojWorkflowV1alpha1WorkflowMetadata>,
7533 #[doc = "WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution"]
7534 #[serde(
7535 rename = "workflowTemplateRef",
7536 default,
7537 skip_serializing_if = "Option::is_none"
7538 )]
7539 pub workflow_template_ref: Option<IoArgoprojWorkflowV1alpha1WorkflowTemplateRef>,
7540}
7541impl From<&IoArgoprojWorkflowV1alpha1WorkflowSpec> for IoArgoprojWorkflowV1alpha1WorkflowSpec {
7542 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowSpec) -> Self {
7543 value.clone()
7544 }
7545}
7546#[doc = "WorkflowStatus contains overall status information about a workflow"]
7547#[derive(Clone, Debug, Deserialize, Serialize)]
7548pub struct IoArgoprojWorkflowV1alpha1WorkflowStatus {
7549 #[doc = "ArtifactGCStatus maintains the status of Artifact Garbage Collection"]
7550 #[serde(
7551 rename = "artifactGCStatus",
7552 default,
7553 skip_serializing_if = "Option::is_none"
7554 )]
7555 pub artifact_gc_status: Option<IoArgoprojWorkflowV1alpha1ArtGcStatus>,
7556 #[doc = "ArtifactRepositoryRef is used to cache the repository to use so we do not need to determine it everytime we reconcile."]
7557 #[serde(
7558 rename = "artifactRepositoryRef",
7559 default,
7560 skip_serializing_if = "Option::is_none"
7561 )]
7562 pub artifact_repository_ref: Option<IoArgoprojWorkflowV1alpha1ArtifactRepositoryRefStatus>,
7563 #[doc = "Compressed and base64 decoded Nodes map"]
7564 #[serde(
7565 rename = "compressedNodes",
7566 default,
7567 skip_serializing_if = "Option::is_none"
7568 )]
7569 pub compressed_nodes: Option<String>,
7570 #[doc = "Conditions is a list of conditions the Workflow may have"]
7571 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7572 pub conditions: Vec<IoArgoprojWorkflowV1alpha1Condition>,
7573 #[doc = "EstimatedDuration in seconds."]
7574 #[serde(
7575 rename = "estimatedDuration",
7576 default,
7577 skip_serializing_if = "Option::is_none"
7578 )]
7579 pub estimated_duration: Option<i64>,
7580 #[doc = "Time at which this workflow completed"]
7581 #[serde(
7582 rename = "finishedAt",
7583 default,
7584 skip_serializing_if = "Option::is_none"
7585 )]
7586 pub finished_at: Option<IoK8sApimachineryPkgApisMetaV1Time>,
7587 #[doc = "A human readable message indicating details about why the workflow is in this condition."]
7588 #[serde(default, skip_serializing_if = "Option::is_none")]
7589 pub message: Option<String>,
7590 #[doc = "Nodes is a mapping between a node ID and the node's status."]
7591 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7592 pub nodes: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1NodeStatus>,
7593 #[doc = "Whether on not node status has been offloaded to a database. If exists, then Nodes and CompressedNodes will be empty. This will actually be populated with a hash of the offloaded data."]
7594 #[serde(
7595 rename = "offloadNodeStatusVersion",
7596 default,
7597 skip_serializing_if = "Option::is_none"
7598 )]
7599 pub offload_node_status_version: Option<String>,
7600 #[doc = "Outputs captures output values and artifact locations produced by the workflow via global outputs"]
7601 #[serde(default, skip_serializing_if = "Option::is_none")]
7602 pub outputs: Option<IoArgoprojWorkflowV1alpha1Outputs>,
7603 #[doc = "PersistentVolumeClaims tracks all PVCs that were created as part of the io.argoproj.workflow.v1alpha1. The contents of this list are drained at the end of the workflow."]
7604 #[serde(
7605 rename = "persistentVolumeClaims",
7606 default,
7607 skip_serializing_if = "Vec::is_empty"
7608 )]
7609 pub persistent_volume_claims: Vec<IoK8sApiCoreV1Volume>,
7610 #[doc = "Phase a simple, high-level summary of where the workflow is in its lifecycle. Will be \"\" (Unknown), \"Pending\", or \"Running\" before the workflow is completed, and \"Succeeded\", \"Failed\" or \"Error\" once the workflow has completed."]
7611 #[serde(default, skip_serializing_if = "Option::is_none")]
7612 pub phase: Option<String>,
7613 #[doc = "Progress to completion"]
7614 #[serde(default, skip_serializing_if = "Option::is_none")]
7615 pub progress: Option<String>,
7616 #[doc = "ResourcesDuration is the total for the workflow"]
7617 #[serde(
7618 rename = "resourcesDuration",
7619 default,
7620 skip_serializing_if = "std::collections::HashMap::is_empty"
7621 )]
7622 pub resources_duration: std::collections::HashMap<String, i64>,
7623 #[doc = "Time at which this workflow started"]
7624 #[serde(rename = "startedAt", default, skip_serializing_if = "Option::is_none")]
7625 pub started_at: Option<IoK8sApimachineryPkgApisMetaV1Time>,
7626 #[doc = "StoredTemplates is a mapping between a template ref and the node's status."]
7627 #[serde(
7628 rename = "storedTemplates",
7629 default,
7630 skip_serializing_if = "std::collections::HashMap::is_empty"
7631 )]
7632 pub stored_templates: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1Template>,
7633 #[doc = "StoredWorkflowSpec stores the WorkflowTemplate spec for future execution."]
7634 #[serde(
7635 rename = "storedWorkflowTemplateSpec",
7636 default,
7637 skip_serializing_if = "Option::is_none"
7638 )]
7639 pub stored_workflow_template_spec: Option<IoArgoprojWorkflowV1alpha1WorkflowSpec>,
7640 #[doc = "Synchronization stores the status of synchronization locks"]
7641 #[serde(default, skip_serializing_if = "Option::is_none")]
7642 pub synchronization: Option<IoArgoprojWorkflowV1alpha1SynchronizationStatus>,
7643}
7644impl From<&IoArgoprojWorkflowV1alpha1WorkflowStatus> for IoArgoprojWorkflowV1alpha1WorkflowStatus {
7645 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowStatus) -> Self {
7646 value.clone()
7647 }
7648}
7649#[doc = "WorkflowStep is a reference to a template to execute in a series of step"]
7650#[derive(Clone, Debug, Deserialize, Serialize)]
7651pub struct IoArgoprojWorkflowV1alpha1WorkflowStep {
7652 #[doc = "Arguments hold arguments to the template"]
7653 #[serde(default, skip_serializing_if = "Option::is_none")]
7654 pub arguments: Option<IoArgoprojWorkflowV1alpha1Arguments>,
7655 #[doc = "ContinueOn makes argo to proceed with the following step even if this step fails. Errors and Failed states can be specified"]
7656 #[serde(
7657 rename = "continueOn",
7658 default,
7659 skip_serializing_if = "Option::is_none"
7660 )]
7661 pub continue_on: Option<IoArgoprojWorkflowV1alpha1ContinueOn>,
7662 #[doc = "Hooks holds the lifecycle hook which is invoked at lifecycle of step, irrespective of the success, failure, or error status of the primary step"]
7663 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7664 pub hooks: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1LifecycleHook>,
7665 #[doc = "Inline is the template. Template must be empty if this is declared (and vice-versa)."]
7666 #[serde(default, skip_serializing_if = "Option::is_none")]
7667 pub inline: Option<IoArgoprojWorkflowV1alpha1Template>,
7668 #[doc = "Name of the step"]
7669 #[serde(default, skip_serializing_if = "Option::is_none")]
7670 pub name: Option<String>,
7671 #[doc = "OnExit is a template reference which is invoked at the end of the template, irrespective of the success, failure, or error of the primary template. DEPRECATED: Use Hooks[exit].Template instead."]
7672 #[serde(rename = "onExit", default, skip_serializing_if = "Option::is_none")]
7673 pub on_exit: Option<String>,
7674 #[doc = "Template is the name of the template to execute as the step"]
7675 #[serde(default, skip_serializing_if = "Option::is_none")]
7676 pub template: Option<String>,
7677 #[doc = "TemplateRef is the reference to the template resource to execute as the step."]
7678 #[serde(
7679 rename = "templateRef",
7680 default,
7681 skip_serializing_if = "Option::is_none"
7682 )]
7683 pub template_ref: Option<IoArgoprojWorkflowV1alpha1TemplateRef>,
7684 #[doc = "When is an expression in which the step should conditionally execute"]
7685 #[serde(default, skip_serializing_if = "Option::is_none")]
7686 pub when: Option<String>,
7687 #[doc = "WithItems expands a step into multiple parallel steps from the items in the list"]
7688 #[serde(rename = "withItems", default, skip_serializing_if = "Vec::is_empty")]
7689 pub with_items: Vec<IoArgoprojWorkflowV1alpha1Item>,
7690 #[doc = "WithParam expands a step into multiple parallel steps from the value in the parameter, which is expected to be a JSON list."]
7691 #[serde(rename = "withParam", default, skip_serializing_if = "Option::is_none")]
7692 pub with_param: Option<String>,
7693 #[doc = "WithSequence expands a step into a numeric sequence"]
7694 #[serde(
7695 rename = "withSequence",
7696 default,
7697 skip_serializing_if = "Option::is_none"
7698 )]
7699 pub with_sequence: Option<IoArgoprojWorkflowV1alpha1Sequence>,
7700}
7701impl From<&IoArgoprojWorkflowV1alpha1WorkflowStep> for IoArgoprojWorkflowV1alpha1WorkflowStep {
7702 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowStep) -> Self {
7703 value.clone()
7704 }
7705}
7706#[derive(Clone, Debug, Deserialize, Serialize)]
7707pub struct IoArgoprojWorkflowV1alpha1WorkflowStopRequest {
7708 #[serde(default, skip_serializing_if = "Option::is_none")]
7709 pub message: Option<String>,
7710 #[serde(default, skip_serializing_if = "Option::is_none")]
7711 pub name: Option<String>,
7712 #[serde(default, skip_serializing_if = "Option::is_none")]
7713 pub namespace: Option<String>,
7714 #[serde(
7715 rename = "nodeFieldSelector",
7716 default,
7717 skip_serializing_if = "Option::is_none"
7718 )]
7719 pub node_field_selector: Option<String>,
7720}
7721impl From<&IoArgoprojWorkflowV1alpha1WorkflowStopRequest>
7722 for IoArgoprojWorkflowV1alpha1WorkflowStopRequest
7723{
7724 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowStopRequest) -> Self {
7725 value.clone()
7726 }
7727}
7728#[derive(Clone, Debug, Deserialize, Serialize)]
7729pub struct IoArgoprojWorkflowV1alpha1WorkflowSubmitRequest {
7730 #[serde(default, skip_serializing_if = "Option::is_none")]
7731 pub namespace: Option<String>,
7732 #[serde(
7733 rename = "resourceKind",
7734 default,
7735 skip_serializing_if = "Option::is_none"
7736 )]
7737 pub resource_kind: Option<String>,
7738 #[serde(
7739 rename = "resourceName",
7740 default,
7741 skip_serializing_if = "Option::is_none"
7742 )]
7743 pub resource_name: Option<String>,
7744 #[serde(
7745 rename = "submitOptions",
7746 default,
7747 skip_serializing_if = "Option::is_none"
7748 )]
7749 pub submit_options: Option<IoArgoprojWorkflowV1alpha1SubmitOpts>,
7750}
7751impl From<&IoArgoprojWorkflowV1alpha1WorkflowSubmitRequest>
7752 for IoArgoprojWorkflowV1alpha1WorkflowSubmitRequest
7753{
7754 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowSubmitRequest) -> Self {
7755 value.clone()
7756 }
7757}
7758#[derive(Clone, Debug, Deserialize, Serialize)]
7759pub struct IoArgoprojWorkflowV1alpha1WorkflowSuspendRequest {
7760 #[serde(default, skip_serializing_if = "Option::is_none")]
7761 pub name: Option<String>,
7762 #[serde(default, skip_serializing_if = "Option::is_none")]
7763 pub namespace: Option<String>,
7764}
7765impl From<&IoArgoprojWorkflowV1alpha1WorkflowSuspendRequest>
7766 for IoArgoprojWorkflowV1alpha1WorkflowSuspendRequest
7767{
7768 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowSuspendRequest) -> Self {
7769 value.clone()
7770 }
7771}
7772#[derive(Clone, Debug, Deserialize, Serialize)]
7773pub struct IoArgoprojWorkflowV1alpha1WorkflowTaskSetSpec {
7774 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7775 pub tasks: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1Template>,
7776}
7777impl From<&IoArgoprojWorkflowV1alpha1WorkflowTaskSetSpec>
7778 for IoArgoprojWorkflowV1alpha1WorkflowTaskSetSpec
7779{
7780 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTaskSetSpec) -> Self {
7781 value.clone()
7782 }
7783}
7784#[derive(Clone, Debug, Deserialize, Serialize)]
7785pub struct IoArgoprojWorkflowV1alpha1WorkflowTaskSetStatus {
7786 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
7787 pub nodes: std::collections::HashMap<String, IoArgoprojWorkflowV1alpha1NodeResult>,
7788}
7789impl From<&IoArgoprojWorkflowV1alpha1WorkflowTaskSetStatus>
7790 for IoArgoprojWorkflowV1alpha1WorkflowTaskSetStatus
7791{
7792 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTaskSetStatus) -> Self {
7793 value.clone()
7794 }
7795}
7796#[doc = "WorkflowTemplate is the definition of a workflow template resource"]
7797#[derive(Clone, Debug, Deserialize, Serialize)]
7798pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplate {
7799 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
7800 #[serde(
7801 rename = "apiVersion",
7802 default,
7803 skip_serializing_if = "Option::is_none"
7804 )]
7805 pub api_version: Option<String>,
7806 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
7807 #[serde(default, skip_serializing_if = "Option::is_none")]
7808 pub kind: Option<String>,
7809 pub metadata: IoK8sApimachineryPkgApisMetaV1ObjectMeta,
7810 pub spec: IoArgoprojWorkflowV1alpha1WorkflowSpec,
7811}
7812impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplate>
7813 for IoArgoprojWorkflowV1alpha1WorkflowTemplate
7814{
7815 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplate) -> Self {
7816 value.clone()
7817 }
7818}
7819#[derive(Clone, Debug, Deserialize, Serialize)]
7820pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplateCreateRequest {
7821 #[serde(
7822 rename = "createOptions",
7823 default,
7824 skip_serializing_if = "Option::is_none"
7825 )]
7826 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
7827 #[serde(default, skip_serializing_if = "Option::is_none")]
7828 pub namespace: Option<String>,
7829 #[serde(default, skip_serializing_if = "Option::is_none")]
7830 pub template: Option<IoArgoprojWorkflowV1alpha1WorkflowTemplate>,
7831}
7832impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplateCreateRequest>
7833 for IoArgoprojWorkflowV1alpha1WorkflowTemplateCreateRequest
7834{
7835 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplateCreateRequest) -> Self {
7836 value.clone()
7837 }
7838}
7839#[derive(Clone, Debug, Deserialize, Serialize)]
7840pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse(
7841 pub serde_json::Map<String, serde_json::Value>,
7842);
7843impl std::ops::Deref for IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse {
7844 type Target = serde_json::Map<String, serde_json::Value>;
7845 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
7846 &self.0
7847 }
7848}
7849impl From<IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse>
7850 for serde_json::Map<String, serde_json::Value>
7851{
7852 fn from(value: IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse) -> Self {
7853 value.0
7854 }
7855}
7856impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse>
7857 for IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse
7858{
7859 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse) -> Self {
7860 value.clone()
7861 }
7862}
7863impl From<serde_json::Map<String, serde_json::Value>>
7864 for IoArgoprojWorkflowV1alpha1WorkflowTemplateDeleteResponse
7865{
7866 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
7867 Self(value)
7868 }
7869}
7870#[derive(Clone, Debug, Deserialize, Serialize)]
7871pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplateLintRequest {
7872 #[serde(
7873 rename = "createOptions",
7874 default,
7875 skip_serializing_if = "Option::is_none"
7876 )]
7877 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
7878 #[serde(default, skip_serializing_if = "Option::is_none")]
7879 pub namespace: Option<String>,
7880 #[serde(default, skip_serializing_if = "Option::is_none")]
7881 pub template: Option<IoArgoprojWorkflowV1alpha1WorkflowTemplate>,
7882}
7883impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplateLintRequest>
7884 for IoArgoprojWorkflowV1alpha1WorkflowTemplateLintRequest
7885{
7886 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplateLintRequest) -> Self {
7887 value.clone()
7888 }
7889}
7890#[doc = "WorkflowTemplateList is list of WorkflowTemplate resources"]
7891#[derive(Clone, Debug, Deserialize, Serialize)]
7892pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplateList {
7893 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources"]
7894 #[serde(
7895 rename = "apiVersion",
7896 default,
7897 skip_serializing_if = "Option::is_none"
7898 )]
7899 pub api_version: Option<String>,
7900 pub items: Vec<IoArgoprojWorkflowV1alpha1WorkflowTemplate>,
7901 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
7902 #[serde(default, skip_serializing_if = "Option::is_none")]
7903 pub kind: Option<String>,
7904 pub metadata: IoK8sApimachineryPkgApisMetaV1ListMeta,
7905}
7906impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplateList>
7907 for IoArgoprojWorkflowV1alpha1WorkflowTemplateList
7908{
7909 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplateList) -> Self {
7910 value.clone()
7911 }
7912}
7913#[doc = "WorkflowTemplateRef is a reference to a WorkflowTemplate resource."]
7914#[derive(Clone, Debug, Deserialize, Serialize)]
7915pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplateRef {
7916 #[doc = "ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate)."]
7917 #[serde(
7918 rename = "clusterScope",
7919 default,
7920 skip_serializing_if = "Option::is_none"
7921 )]
7922 pub cluster_scope: Option<bool>,
7923 #[doc = "Name is the resource name of the workflow template."]
7924 #[serde(default, skip_serializing_if = "Option::is_none")]
7925 pub name: Option<String>,
7926}
7927impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplateRef>
7928 for IoArgoprojWorkflowV1alpha1WorkflowTemplateRef
7929{
7930 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplateRef) -> Self {
7931 value.clone()
7932 }
7933}
7934#[derive(Clone, Debug, Deserialize, Serialize)]
7935pub struct IoArgoprojWorkflowV1alpha1WorkflowTemplateUpdateRequest {
7936 #[doc = "DEPRECATED: This field is ignored."]
7937 #[serde(default, skip_serializing_if = "Option::is_none")]
7938 pub name: Option<String>,
7939 #[serde(default, skip_serializing_if = "Option::is_none")]
7940 pub namespace: Option<String>,
7941 #[serde(default, skip_serializing_if = "Option::is_none")]
7942 pub template: Option<IoArgoprojWorkflowV1alpha1WorkflowTemplate>,
7943}
7944impl From<&IoArgoprojWorkflowV1alpha1WorkflowTemplateUpdateRequest>
7945 for IoArgoprojWorkflowV1alpha1WorkflowTemplateUpdateRequest
7946{
7947 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTemplateUpdateRequest) -> Self {
7948 value.clone()
7949 }
7950}
7951#[derive(Clone, Debug, Deserialize, Serialize)]
7952pub struct IoArgoprojWorkflowV1alpha1WorkflowTerminateRequest {
7953 #[serde(default, skip_serializing_if = "Option::is_none")]
7954 pub name: Option<String>,
7955 #[serde(default, skip_serializing_if = "Option::is_none")]
7956 pub namespace: Option<String>,
7957}
7958impl From<&IoArgoprojWorkflowV1alpha1WorkflowTerminateRequest>
7959 for IoArgoprojWorkflowV1alpha1WorkflowTerminateRequest
7960{
7961 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowTerminateRequest) -> Self {
7962 value.clone()
7963 }
7964}
7965#[derive(Clone, Debug, Deserialize, Serialize)]
7966pub struct IoArgoprojWorkflowV1alpha1WorkflowWatchEvent {
7967 #[serde(default, skip_serializing_if = "Option::is_none")]
7968 pub object: Option<IoArgoprojWorkflowV1alpha1Workflow>,
7969 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
7970 pub type_: Option<String>,
7971}
7972impl From<&IoArgoprojWorkflowV1alpha1WorkflowWatchEvent>
7973 for IoArgoprojWorkflowV1alpha1WorkflowWatchEvent
7974{
7975 fn from(value: &IoArgoprojWorkflowV1alpha1WorkflowWatchEvent) -> Self {
7976 value.clone()
7977 }
7978}
7979#[doc = "ZipStrategy will unzip zipped input artifacts"]
7980#[derive(Clone, Debug, Deserialize, Serialize)]
7981pub struct IoArgoprojWorkflowV1alpha1ZipStrategy(pub serde_json::Map<String, serde_json::Value>);
7982impl std::ops::Deref for IoArgoprojWorkflowV1alpha1ZipStrategy {
7983 type Target = serde_json::Map<String, serde_json::Value>;
7984 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
7985 &self.0
7986 }
7987}
7988impl From<IoArgoprojWorkflowV1alpha1ZipStrategy> for serde_json::Map<String, serde_json::Value> {
7989 fn from(value: IoArgoprojWorkflowV1alpha1ZipStrategy) -> Self {
7990 value.0
7991 }
7992}
7993impl From<&IoArgoprojWorkflowV1alpha1ZipStrategy> for IoArgoprojWorkflowV1alpha1ZipStrategy {
7994 fn from(value: &IoArgoprojWorkflowV1alpha1ZipStrategy) -> Self {
7995 value.clone()
7996 }
7997}
7998impl From<serde_json::Map<String, serde_json::Value>> for IoArgoprojWorkflowV1alpha1ZipStrategy {
7999 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
8000 Self(value)
8001 }
8002}
8003#[doc = "Affinity is a group of affinity scheduling rules."]
8004#[derive(Clone, Debug, Deserialize, Serialize)]
8005pub struct IoK8sApiCoreV1Affinity {
8006 #[doc = "Describes node affinity scheduling rules for the pod."]
8007 #[serde(
8008 rename = "nodeAffinity",
8009 default,
8010 skip_serializing_if = "Option::is_none"
8011 )]
8012 pub node_affinity: Option<IoK8sApiCoreV1NodeAffinity>,
8013 #[doc = "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))."]
8014 #[serde(
8015 rename = "podAffinity",
8016 default,
8017 skip_serializing_if = "Option::is_none"
8018 )]
8019 pub pod_affinity: Option<IoK8sApiCoreV1PodAffinity>,
8020 #[doc = "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))."]
8021 #[serde(
8022 rename = "podAntiAffinity",
8023 default,
8024 skip_serializing_if = "Option::is_none"
8025 )]
8026 pub pod_anti_affinity: Option<IoK8sApiCoreV1PodAntiAffinity>,
8027}
8028impl From<&IoK8sApiCoreV1Affinity> for IoK8sApiCoreV1Affinity {
8029 fn from(value: &IoK8sApiCoreV1Affinity) -> Self {
8030 value.clone()
8031 }
8032}
8033#[doc = "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling."]
8034#[derive(Clone, Debug, Deserialize, Serialize)]
8035pub struct IoK8sApiCoreV1AwsElasticBlockStoreVolumeSource {
8036 #[doc = "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"]
8037 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8038 pub fs_type: Option<String>,
8039 #[doc = "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)."]
8040 #[serde(default, skip_serializing_if = "Option::is_none")]
8041 pub partition: Option<i64>,
8042 #[doc = "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"]
8043 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8044 pub read_only: Option<bool>,
8045 #[doc = "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"]
8046 #[serde(rename = "volumeID")]
8047 pub volume_id: String,
8048}
8049impl From<&IoK8sApiCoreV1AwsElasticBlockStoreVolumeSource>
8050 for IoK8sApiCoreV1AwsElasticBlockStoreVolumeSource
8051{
8052 fn from(value: &IoK8sApiCoreV1AwsElasticBlockStoreVolumeSource) -> Self {
8053 value.clone()
8054 }
8055}
8056#[doc = "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod."]
8057#[derive(Clone, Debug, Deserialize, Serialize)]
8058pub struct IoK8sApiCoreV1AzureDiskVolumeSource {
8059 #[doc = "Host Caching mode: None, Read Only, Read Write."]
8060 #[serde(
8061 rename = "cachingMode",
8062 default,
8063 skip_serializing_if = "Option::is_none"
8064 )]
8065 pub caching_mode: Option<String>,
8066 #[doc = "The Name of the data disk in the blob storage"]
8067 #[serde(rename = "diskName")]
8068 pub disk_name: String,
8069 #[doc = "The URI the data disk in the blob storage"]
8070 #[serde(rename = "diskURI")]
8071 pub disk_uri: String,
8072 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."]
8073 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8074 pub fs_type: Option<String>,
8075 #[doc = "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared"]
8076 #[serde(default, skip_serializing_if = "Option::is_none")]
8077 pub kind: Option<String>,
8078 #[doc = "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
8079 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8080 pub read_only: Option<bool>,
8081}
8082impl From<&IoK8sApiCoreV1AzureDiskVolumeSource> for IoK8sApiCoreV1AzureDiskVolumeSource {
8083 fn from(value: &IoK8sApiCoreV1AzureDiskVolumeSource) -> Self {
8084 value.clone()
8085 }
8086}
8087#[doc = "AzureFile represents an Azure File Service mount on the host and bind mount to the pod."]
8088#[derive(Clone, Debug, Deserialize, Serialize)]
8089pub struct IoK8sApiCoreV1AzureFileVolumeSource {
8090 #[doc = "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
8091 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8092 pub read_only: Option<bool>,
8093 #[doc = "the name of secret that contains Azure Storage Account Name and Key"]
8094 #[serde(rename = "secretName")]
8095 pub secret_name: String,
8096 #[doc = "Share Name"]
8097 #[serde(rename = "shareName")]
8098 pub share_name: String,
8099}
8100impl From<&IoK8sApiCoreV1AzureFileVolumeSource> for IoK8sApiCoreV1AzureFileVolumeSource {
8101 fn from(value: &IoK8sApiCoreV1AzureFileVolumeSource) -> Self {
8102 value.clone()
8103 }
8104}
8105#[doc = "Adds and removes POSIX capabilities from running containers."]
8106#[derive(Clone, Debug, Deserialize, Serialize)]
8107pub struct IoK8sApiCoreV1Capabilities {
8108 #[doc = "Added capabilities"]
8109 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8110 pub add: Vec<String>,
8111 #[doc = "Removed capabilities"]
8112 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8113 pub drop: Vec<String>,
8114}
8115impl From<&IoK8sApiCoreV1Capabilities> for IoK8sApiCoreV1Capabilities {
8116 fn from(value: &IoK8sApiCoreV1Capabilities) -> Self {
8117 value.clone()
8118 }
8119}
8120#[doc = "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling."]
8121#[derive(Clone, Debug, Deserialize, Serialize)]
8122pub struct IoK8sApiCoreV1CephFsVolumeSource {
8123 #[doc = "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"]
8124 pub monitors: Vec<String>,
8125 #[doc = "Optional: Used as the mounted root, rather than the full Ceph tree, default is /"]
8126 #[serde(default, skip_serializing_if = "Option::is_none")]
8127 pub path: Option<String>,
8128 #[doc = "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"]
8129 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8130 pub read_only: Option<bool>,
8131 #[doc = "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"]
8132 #[serde(
8133 rename = "secretFile",
8134 default,
8135 skip_serializing_if = "Option::is_none"
8136 )]
8137 pub secret_file: Option<String>,
8138 #[doc = "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"]
8139 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
8140 pub secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
8141 #[doc = "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"]
8142 #[serde(default, skip_serializing_if = "Option::is_none")]
8143 pub user: Option<String>,
8144}
8145impl From<&IoK8sApiCoreV1CephFsVolumeSource> for IoK8sApiCoreV1CephFsVolumeSource {
8146 fn from(value: &IoK8sApiCoreV1CephFsVolumeSource) -> Self {
8147 value.clone()
8148 }
8149}
8150#[doc = "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling."]
8151#[derive(Clone, Debug, Deserialize, Serialize)]
8152pub struct IoK8sApiCoreV1CinderVolumeSource {
8153 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md"]
8154 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8155 pub fs_type: Option<String>,
8156 #[doc = "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md"]
8157 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8158 pub read_only: Option<bool>,
8159 #[doc = "Optional: points to a secret object containing parameters used to connect to OpenStack."]
8160 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
8161 pub secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
8162 #[doc = "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md"]
8163 #[serde(rename = "volumeID")]
8164 pub volume_id: String,
8165}
8166impl From<&IoK8sApiCoreV1CinderVolumeSource> for IoK8sApiCoreV1CinderVolumeSource {
8167 fn from(value: &IoK8sApiCoreV1CinderVolumeSource) -> Self {
8168 value.clone()
8169 }
8170}
8171#[doc = "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables."]
8172#[derive(Clone, Debug, Deserialize, Serialize)]
8173pub struct IoK8sApiCoreV1ConfigMapEnvSource {
8174 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
8175 #[serde(default, skip_serializing_if = "Option::is_none")]
8176 pub name: Option<String>,
8177 #[doc = "Specify whether the ConfigMap must be defined"]
8178 #[serde(default, skip_serializing_if = "Option::is_none")]
8179 pub optional: Option<bool>,
8180}
8181impl From<&IoK8sApiCoreV1ConfigMapEnvSource> for IoK8sApiCoreV1ConfigMapEnvSource {
8182 fn from(value: &IoK8sApiCoreV1ConfigMapEnvSource) -> Self {
8183 value.clone()
8184 }
8185}
8186#[doc = "Selects a key from a ConfigMap."]
8187#[derive(Clone, Debug, Deserialize, Serialize)]
8188pub struct IoK8sApiCoreV1ConfigMapKeySelector {
8189 #[doc = "The key to select."]
8190 pub key: String,
8191 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
8192 #[serde(default, skip_serializing_if = "Option::is_none")]
8193 pub name: Option<String>,
8194 #[doc = "Specify whether the ConfigMap or its key must be defined"]
8195 #[serde(default, skip_serializing_if = "Option::is_none")]
8196 pub optional: Option<bool>,
8197}
8198impl From<&IoK8sApiCoreV1ConfigMapKeySelector> for IoK8sApiCoreV1ConfigMapKeySelector {
8199 fn from(value: &IoK8sApiCoreV1ConfigMapKeySelector) -> Self {
8200 value.clone()
8201 }
8202}
8203#[doc = "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode."]
8204#[derive(Clone, Debug, Deserialize, Serialize)]
8205pub struct IoK8sApiCoreV1ConfigMapProjection {
8206 #[doc = "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."]
8207 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8208 pub items: Vec<IoK8sApiCoreV1KeyToPath>,
8209 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
8210 #[serde(default, skip_serializing_if = "Option::is_none")]
8211 pub name: Option<String>,
8212 #[doc = "Specify whether the ConfigMap or its keys must be defined"]
8213 #[serde(default, skip_serializing_if = "Option::is_none")]
8214 pub optional: Option<bool>,
8215}
8216impl From<&IoK8sApiCoreV1ConfigMapProjection> for IoK8sApiCoreV1ConfigMapProjection {
8217 fn from(value: &IoK8sApiCoreV1ConfigMapProjection) -> Self {
8218 value.clone()
8219 }
8220}
8221
8222pub use IoK8sApiCoreV1ConfigMapVolumeSourceBuilder as ConfigMapVolumeSourceBuilder;
8223pub use IoK8sApiCoreV1ConfigMapVolumeSourceBuilderError as ConfigMapVolumeSourceBuilderError;
8224
8225#[doc = "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling."]
8226#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
8227#[builder(default)]
8228pub struct IoK8sApiCoreV1ConfigMapVolumeSource {
8229 #[doc = "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."]
8230 #[serde(
8231 rename = "defaultMode",
8232 default,
8233 skip_serializing_if = "Option::is_none"
8234 )]
8235 pub default_mode: Option<i64>,
8236 #[doc = "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."]
8237 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8238 pub items: Vec<IoK8sApiCoreV1KeyToPath>,
8239 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
8240 #[serde(default, skip_serializing_if = "Option::is_none")]
8241 pub name: Option<String>,
8242 #[doc = "Specify whether the ConfigMap or its keys must be defined"]
8243 #[serde(default, skip_serializing_if = "Option::is_none")]
8244 pub optional: Option<bool>,
8245}
8246impl From<&IoK8sApiCoreV1ConfigMapVolumeSource> for IoK8sApiCoreV1ConfigMapVolumeSource {
8247 fn from(value: &IoK8sApiCoreV1ConfigMapVolumeSource) -> Self {
8248 value.clone()
8249 }
8250}
8251
8252pub use IoK8sApiCoreV1ContainerBuilder as ContainerBuilder;
8253pub use IoK8sApiCoreV1ContainerBuilderError as ContainerBuilderError;
8254
8255#[doc = "A single application container that you want to run within a pod."]
8256#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
8257#[builder(default)]
8258pub struct IoK8sApiCoreV1Container {
8259 #[doc = "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
8260 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8261 pub args: Vec<String>,
8262 #[doc = "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"]
8263 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8264 pub command: Vec<String>,
8265 #[doc = "List of environment variables to set in the container. Cannot be updated."]
8266 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8267 pub env: Vec<IoK8sApiCoreV1EnvVar>,
8268 #[doc = "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated."]
8269 #[serde(rename = "envFrom", default, skip_serializing_if = "Vec::is_empty")]
8270 pub env_from: Vec<IoK8sApiCoreV1EnvFromSource>,
8271 #[doc = "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets."]
8272 pub image: String,
8273 #[doc = "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present"]
8274 #[serde(
8275 rename = "imagePullPolicy",
8276 default,
8277 skip_serializing_if = "Option::is_none"
8278 )]
8279 pub image_pull_policy: Option<IoK8sApiCoreV1ContainerImagePullPolicy>,
8280 #[doc = "Actions that the management system should take in response to container lifecycle events. Cannot be updated."]
8281 #[serde(default, skip_serializing_if = "Option::is_none")]
8282 pub lifecycle: Option<IoK8sApiCoreV1Lifecycle>,
8283 #[doc = "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
8284 #[serde(
8285 rename = "livenessProbe",
8286 default,
8287 skip_serializing_if = "Option::is_none"
8288 )]
8289 pub liveness_probe: Option<IoK8sApiCoreV1Probe>,
8290 #[doc = "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated."]
8291 #[serde(default, skip_serializing_if = "Option::is_none")]
8292 pub name: Option<String>,
8293 #[doc = "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated."]
8294 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8295 pub ports: Vec<IoK8sApiCoreV1ContainerPort>,
8296 #[doc = "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
8297 #[serde(
8298 rename = "readinessProbe",
8299 default,
8300 skip_serializing_if = "Option::is_none"
8301 )]
8302 pub readiness_probe: Option<IoK8sApiCoreV1Probe>,
8303 #[doc = "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"]
8304 #[serde(default, skip_serializing_if = "Option::is_none")]
8305 pub resources: Option<IoK8sApiCoreV1ResourceRequirements>,
8306 #[doc = "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"]
8307 #[serde(
8308 rename = "securityContext",
8309 default,
8310 skip_serializing_if = "Option::is_none"
8311 )]
8312 pub security_context: Option<IoK8sApiCoreV1SecurityContext>,
8313 #[doc = "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
8314 #[serde(
8315 rename = "startupProbe",
8316 default,
8317 skip_serializing_if = "Option::is_none"
8318 )]
8319 pub startup_probe: Option<IoK8sApiCoreV1Probe>,
8320 #[doc = "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false."]
8321 #[serde(default, skip_serializing_if = "Option::is_none")]
8322 pub stdin: Option<bool>,
8323 #[doc = "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false"]
8324 #[serde(rename = "stdinOnce", default, skip_serializing_if = "Option::is_none")]
8325 pub stdin_once: Option<bool>,
8326 #[doc = "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated."]
8327 #[serde(
8328 rename = "terminationMessagePath",
8329 default,
8330 skip_serializing_if = "Option::is_none"
8331 )]
8332 pub termination_message_path: Option<String>,
8333 #[doc = "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits."]
8334 #[serde(
8335 rename = "terminationMessagePolicy",
8336 default,
8337 skip_serializing_if = "Option::is_none"
8338 )]
8339 pub termination_message_policy: Option<IoK8sApiCoreV1ContainerTerminationMessagePolicy>,
8340 #[doc = "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false."]
8341 #[serde(default, skip_serializing_if = "Option::is_none")]
8342 pub tty: Option<bool>,
8343 #[doc = "volumeDevices is the list of block devices to be used by the container."]
8344 #[serde(
8345 rename = "volumeDevices",
8346 default,
8347 skip_serializing_if = "Vec::is_empty"
8348 )]
8349 pub volume_devices: Vec<IoK8sApiCoreV1VolumeDevice>,
8350 #[doc = "Pod volumes to mount into the container's filesystem. Cannot be updated."]
8351 #[serde(
8352 rename = "volumeMounts",
8353 default,
8354 skip_serializing_if = "Vec::is_empty"
8355 )]
8356 pub volume_mounts: Vec<IoK8sApiCoreV1VolumeMount>,
8357 #[doc = "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated."]
8358 #[serde(
8359 rename = "workingDir",
8360 default,
8361 skip_serializing_if = "Option::is_none"
8362 )]
8363 pub working_dir: Option<String>,
8364}
8365impl From<&IoK8sApiCoreV1Container> for IoK8sApiCoreV1Container {
8366 fn from(value: &IoK8sApiCoreV1Container) -> Self {
8367 value.clone()
8368 }
8369}
8370#[doc = "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present"]
8371#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
8372pub enum IoK8sApiCoreV1ContainerImagePullPolicy {
8373 Always,
8374 IfNotPresent,
8375 Never,
8376}
8377impl From<&IoK8sApiCoreV1ContainerImagePullPolicy> for IoK8sApiCoreV1ContainerImagePullPolicy {
8378 fn from(value: &IoK8sApiCoreV1ContainerImagePullPolicy) -> Self {
8379 value.clone()
8380 }
8381}
8382impl ToString for IoK8sApiCoreV1ContainerImagePullPolicy {
8383 fn to_string(&self) -> String {
8384 match *self {
8385 Self::Always => "Always".to_string(),
8386 Self::IfNotPresent => "IfNotPresent".to_string(),
8387 Self::Never => "Never".to_string(),
8388 }
8389 }
8390}
8391impl std::str::FromStr for IoK8sApiCoreV1ContainerImagePullPolicy {
8392 type Err = &'static str;
8393 fn from_str(value: &str) -> Result<Self, &'static str> {
8394 match value {
8395 "Always" => Ok(Self::Always),
8396 "IfNotPresent" => Ok(Self::IfNotPresent),
8397 "Never" => Ok(Self::Never),
8398 _ => Err("invalid value"),
8399 }
8400 }
8401}
8402impl std::convert::TryFrom<&str> for IoK8sApiCoreV1ContainerImagePullPolicy {
8403 type Error = &'static str;
8404 fn try_from(value: &str) -> Result<Self, &'static str> {
8405 value.parse()
8406 }
8407}
8408impl std::convert::TryFrom<&String> for IoK8sApiCoreV1ContainerImagePullPolicy {
8409 type Error = &'static str;
8410 fn try_from(value: &String) -> Result<Self, &'static str> {
8411 value.parse()
8412 }
8413}
8414impl std::convert::TryFrom<String> for IoK8sApiCoreV1ContainerImagePullPolicy {
8415 type Error = &'static str;
8416 fn try_from(value: String) -> Result<Self, &'static str> {
8417 value.parse()
8418 }
8419}
8420#[doc = "ContainerPort represents a network port in a single container."]
8421#[derive(Clone, Debug, Deserialize, Serialize)]
8422pub struct IoK8sApiCoreV1ContainerPort {
8423 #[doc = "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536."]
8424 #[serde(rename = "containerPort")]
8425 pub container_port: i64,
8426 #[doc = "What host IP to bind the external port to."]
8427 #[serde(rename = "hostIP", default, skip_serializing_if = "Option::is_none")]
8428 pub host_ip: Option<String>,
8429 #[doc = "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this."]
8430 #[serde(rename = "hostPort", default, skip_serializing_if = "Option::is_none")]
8431 pub host_port: Option<i64>,
8432 #[doc = "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services."]
8433 #[serde(default, skip_serializing_if = "Option::is_none")]
8434 pub name: Option<String>,
8435 #[doc = "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol."]
8436 #[serde(default, skip_serializing_if = "Option::is_none")]
8437 pub protocol: Option<IoK8sApiCoreV1ContainerPortProtocol>,
8438}
8439impl From<&IoK8sApiCoreV1ContainerPort> for IoK8sApiCoreV1ContainerPort {
8440 fn from(value: &IoK8sApiCoreV1ContainerPort) -> Self {
8441 value.clone()
8442 }
8443}
8444#[doc = "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol."]
8445#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
8446pub enum IoK8sApiCoreV1ContainerPortProtocol {
8447 #[serde(rename = "SCTP")]
8448 Sctp,
8449 #[serde(rename = "TCP")]
8450 Tcp,
8451 #[serde(rename = "UDP")]
8452 Udp,
8453}
8454impl From<&IoK8sApiCoreV1ContainerPortProtocol> for IoK8sApiCoreV1ContainerPortProtocol {
8455 fn from(value: &IoK8sApiCoreV1ContainerPortProtocol) -> Self {
8456 value.clone()
8457 }
8458}
8459impl ToString for IoK8sApiCoreV1ContainerPortProtocol {
8460 fn to_string(&self) -> String {
8461 match *self {
8462 Self::Sctp => "SCTP".to_string(),
8463 Self::Tcp => "TCP".to_string(),
8464 Self::Udp => "UDP".to_string(),
8465 }
8466 }
8467}
8468impl std::str::FromStr for IoK8sApiCoreV1ContainerPortProtocol {
8469 type Err = &'static str;
8470 fn from_str(value: &str) -> Result<Self, &'static str> {
8471 match value {
8472 "SCTP" => Ok(Self::Sctp),
8473 "TCP" => Ok(Self::Tcp),
8474 "UDP" => Ok(Self::Udp),
8475 _ => Err("invalid value"),
8476 }
8477 }
8478}
8479impl std::convert::TryFrom<&str> for IoK8sApiCoreV1ContainerPortProtocol {
8480 type Error = &'static str;
8481 fn try_from(value: &str) -> Result<Self, &'static str> {
8482 value.parse()
8483 }
8484}
8485impl std::convert::TryFrom<&String> for IoK8sApiCoreV1ContainerPortProtocol {
8486 type Error = &'static str;
8487 fn try_from(value: &String) -> Result<Self, &'static str> {
8488 value.parse()
8489 }
8490}
8491impl std::convert::TryFrom<String> for IoK8sApiCoreV1ContainerPortProtocol {
8492 type Error = &'static str;
8493 fn try_from(value: String) -> Result<Self, &'static str> {
8494 value.parse()
8495 }
8496}
8497#[doc = "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits."]
8498#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
8499pub enum IoK8sApiCoreV1ContainerTerminationMessagePolicy {
8500 FallbackToLogsOnError,
8501 File,
8502}
8503impl From<&IoK8sApiCoreV1ContainerTerminationMessagePolicy>
8504 for IoK8sApiCoreV1ContainerTerminationMessagePolicy
8505{
8506 fn from(value: &IoK8sApiCoreV1ContainerTerminationMessagePolicy) -> Self {
8507 value.clone()
8508 }
8509}
8510impl ToString for IoK8sApiCoreV1ContainerTerminationMessagePolicy {
8511 fn to_string(&self) -> String {
8512 match *self {
8513 Self::FallbackToLogsOnError => "FallbackToLogsOnError".to_string(),
8514 Self::File => "File".to_string(),
8515 }
8516 }
8517}
8518impl std::str::FromStr for IoK8sApiCoreV1ContainerTerminationMessagePolicy {
8519 type Err = &'static str;
8520 fn from_str(value: &str) -> Result<Self, &'static str> {
8521 match value {
8522 "FallbackToLogsOnError" => Ok(Self::FallbackToLogsOnError),
8523 "File" => Ok(Self::File),
8524 _ => Err("invalid value"),
8525 }
8526 }
8527}
8528impl std::convert::TryFrom<&str> for IoK8sApiCoreV1ContainerTerminationMessagePolicy {
8529 type Error = &'static str;
8530 fn try_from(value: &str) -> Result<Self, &'static str> {
8531 value.parse()
8532 }
8533}
8534impl std::convert::TryFrom<&String> for IoK8sApiCoreV1ContainerTerminationMessagePolicy {
8535 type Error = &'static str;
8536 fn try_from(value: &String) -> Result<Self, &'static str> {
8537 value.parse()
8538 }
8539}
8540impl std::convert::TryFrom<String> for IoK8sApiCoreV1ContainerTerminationMessagePolicy {
8541 type Error = &'static str;
8542 fn try_from(value: String) -> Result<Self, &'static str> {
8543 value.parse()
8544 }
8545}
8546#[doc = "Represents a source location of a volume to mount, managed by an external CSI driver"]
8547#[derive(Clone, Debug, Deserialize, Serialize)]
8548pub struct IoK8sApiCoreV1CsiVolumeSource {
8549 #[doc = "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster."]
8550 pub driver: String,
8551 #[doc = "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply."]
8552 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8553 pub fs_type: Option<String>,
8554 #[doc = "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed."]
8555 #[serde(
8556 rename = "nodePublishSecretRef",
8557 default,
8558 skip_serializing_if = "Option::is_none"
8559 )]
8560 pub node_publish_secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
8561 #[doc = "Specifies a read-only configuration for the volume. Defaults to false (read/write)."]
8562 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8563 pub read_only: Option<bool>,
8564 #[doc = "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values."]
8565 #[serde(
8566 rename = "volumeAttributes",
8567 default,
8568 skip_serializing_if = "std::collections::HashMap::is_empty"
8569 )]
8570 pub volume_attributes: std::collections::HashMap<String, String>,
8571}
8572impl From<&IoK8sApiCoreV1CsiVolumeSource> for IoK8sApiCoreV1CsiVolumeSource {
8573 fn from(value: &IoK8sApiCoreV1CsiVolumeSource) -> Self {
8574 value.clone()
8575 }
8576}
8577#[doc = "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode."]
8578#[derive(Clone, Debug, Deserialize, Serialize)]
8579pub struct IoK8sApiCoreV1DownwardApiProjection {
8580 #[doc = "Items is a list of DownwardAPIVolume file"]
8581 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8582 pub items: Vec<IoK8sApiCoreV1DownwardApiVolumeFile>,
8583}
8584impl From<&IoK8sApiCoreV1DownwardApiProjection> for IoK8sApiCoreV1DownwardApiProjection {
8585 fn from(value: &IoK8sApiCoreV1DownwardApiProjection) -> Self {
8586 value.clone()
8587 }
8588}
8589#[doc = "DownwardAPIVolumeFile represents information to create the file containing the pod field"]
8590#[derive(Clone, Debug, Deserialize, Serialize)]
8591pub struct IoK8sApiCoreV1DownwardApiVolumeFile {
8592 #[doc = "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported."]
8593 #[serde(rename = "fieldRef", default, skip_serializing_if = "Option::is_none")]
8594 pub field_ref: Option<IoK8sApiCoreV1ObjectFieldSelector>,
8595 #[doc = "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."]
8596 #[serde(default, skip_serializing_if = "Option::is_none")]
8597 pub mode: Option<i64>,
8598 #[doc = "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'"]
8599 pub path: String,
8600 #[doc = "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported."]
8601 #[serde(
8602 rename = "resourceFieldRef",
8603 default,
8604 skip_serializing_if = "Option::is_none"
8605 )]
8606 pub resource_field_ref: Option<IoK8sApiCoreV1ResourceFieldSelector>,
8607}
8608impl From<&IoK8sApiCoreV1DownwardApiVolumeFile> for IoK8sApiCoreV1DownwardApiVolumeFile {
8609 fn from(value: &IoK8sApiCoreV1DownwardApiVolumeFile) -> Self {
8610 value.clone()
8611 }
8612}
8613#[doc = "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling."]
8614#[derive(Clone, Debug, Deserialize, Serialize)]
8615pub struct IoK8sApiCoreV1DownwardApiVolumeSource {
8616 #[doc = "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."]
8617 #[serde(
8618 rename = "defaultMode",
8619 default,
8620 skip_serializing_if = "Option::is_none"
8621 )]
8622 pub default_mode: Option<i64>,
8623 #[doc = "Items is a list of downward API volume file"]
8624 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8625 pub items: Vec<IoK8sApiCoreV1DownwardApiVolumeFile>,
8626}
8627impl From<&IoK8sApiCoreV1DownwardApiVolumeSource> for IoK8sApiCoreV1DownwardApiVolumeSource {
8628 fn from(value: &IoK8sApiCoreV1DownwardApiVolumeSource) -> Self {
8629 value.clone()
8630 }
8631}
8632#[doc = "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling."]
8633#[derive(Clone, Debug, Deserialize, Serialize, Default)]
8634pub struct IoK8sApiCoreV1EmptyDirVolumeSource {
8635 #[doc = "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"]
8636 #[serde(default, skip_serializing_if = "Option::is_none")]
8637 pub medium: Option<String>,
8638 #[doc = "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"]
8639 #[serde(rename = "sizeLimit", default, skip_serializing_if = "Option::is_none")]
8640 pub size_limit: Option<IoK8sApimachineryPkgApiResourceQuantity>,
8641}
8642impl From<&IoK8sApiCoreV1EmptyDirVolumeSource> for IoK8sApiCoreV1EmptyDirVolumeSource {
8643 fn from(value: &IoK8sApiCoreV1EmptyDirVolumeSource) -> Self {
8644 value.clone()
8645 }
8646}
8647#[doc = "EnvFromSource represents the source of a set of ConfigMaps"]
8648#[derive(Clone, Debug, Deserialize, Serialize)]
8649pub struct IoK8sApiCoreV1EnvFromSource {
8650 #[doc = "The ConfigMap to select from"]
8651 #[serde(
8652 rename = "configMapRef",
8653 default,
8654 skip_serializing_if = "Option::is_none"
8655 )]
8656 pub config_map_ref: Option<IoK8sApiCoreV1ConfigMapEnvSource>,
8657 #[doc = "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER."]
8658 #[serde(default, skip_serializing_if = "Option::is_none")]
8659 pub prefix: Option<String>,
8660 #[doc = "The Secret to select from"]
8661 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
8662 pub secret_ref: Option<IoK8sApiCoreV1SecretEnvSource>,
8663}
8664impl From<&IoK8sApiCoreV1EnvFromSource> for IoK8sApiCoreV1EnvFromSource {
8665 fn from(value: &IoK8sApiCoreV1EnvFromSource) -> Self {
8666 value.clone()
8667 }
8668}
8669
8670pub use IoK8sApiCoreV1EnvVarBuilder as EnvVarBuilder;
8671pub use IoK8sApiCoreV1EnvVarBuilderError as EnvVarBuilderError;
8672
8673#[doc = "EnvVar represents an environment variable present in a Container."]
8674#[derive(Clone, Debug, Deserialize, Serialize, Builder, Default)]
8675pub struct IoK8sApiCoreV1EnvVar {
8676 #[doc = "Name of the environment variable. Must be a C_IDENTIFIER."]
8677 pub name: String,
8678 #[doc = "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"."]
8679 #[serde(default, skip_serializing_if = "Option::is_none")]
8680 pub value: Option<String>,
8681 #[doc = "Source for the environment variable's value. Cannot be used if value is not empty."]
8682 #[serde(rename = "valueFrom", default, skip_serializing_if = "Option::is_none")]
8683 pub value_from: Option<IoK8sApiCoreV1EnvVarSource>,
8684}
8685impl From<&IoK8sApiCoreV1EnvVar> for IoK8sApiCoreV1EnvVar {
8686 fn from(value: &IoK8sApiCoreV1EnvVar) -> Self {
8687 value.clone()
8688 }
8689}
8690pub use IoK8sApiCoreV1EnvVarSourceBuilder as EnvVarSourceBuilder;
8691pub use IoK8sApiCoreV1EnvVarSourceBuilderError as EnvVarSourceBuilderError;
8692
8693#[doc = "EnvVarSource represents a source for the value of an EnvVar."]
8694#[derive(Clone, Debug, Deserialize, Serialize, Builder, Default)]
8695pub struct IoK8sApiCoreV1EnvVarSource {
8696 #[doc = "Selects a key of a ConfigMap."]
8697 #[serde(
8698 rename = "configMapKeyRef",
8699 default,
8700 skip_serializing_if = "Option::is_none"
8701 )]
8702 pub config_map_key_ref: Option<IoK8sApiCoreV1ConfigMapKeySelector>,
8703 #[doc = "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs."]
8704 #[serde(rename = "fieldRef", default, skip_serializing_if = "Option::is_none")]
8705 pub field_ref: Option<IoK8sApiCoreV1ObjectFieldSelector>,
8706 #[doc = "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported."]
8707 #[serde(
8708 rename = "resourceFieldRef",
8709 default,
8710 skip_serializing_if = "Option::is_none"
8711 )]
8712 pub resource_field_ref: Option<IoK8sApiCoreV1ResourceFieldSelector>,
8713 #[doc = "Selects a key of a secret in the pod's namespace"]
8714 #[serde(
8715 rename = "secretKeyRef",
8716 default,
8717 skip_serializing_if = "Option::is_none"
8718 )]
8719 pub secret_key_ref: Option<IoK8sApiCoreV1SecretKeySelector>,
8720}
8721impl From<&IoK8sApiCoreV1EnvVarSource> for IoK8sApiCoreV1EnvVarSource {
8722 fn from(value: &IoK8sApiCoreV1EnvVarSource) -> Self {
8723 value.clone()
8724 }
8725}
8726#[doc = "Represents an ephemeral volume that is handled by a normal storage driver."]
8727#[derive(Clone, Debug, Deserialize, Serialize)]
8728pub struct IoK8sApiCoreV1EphemeralVolumeSource {
8729 #[doc = "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil."]
8730 #[serde(
8731 rename = "volumeClaimTemplate",
8732 default,
8733 skip_serializing_if = "Option::is_none"
8734 )]
8735 pub volume_claim_template: Option<IoK8sApiCoreV1PersistentVolumeClaimTemplate>,
8736}
8737impl From<&IoK8sApiCoreV1EphemeralVolumeSource> for IoK8sApiCoreV1EphemeralVolumeSource {
8738 fn from(value: &IoK8sApiCoreV1EphemeralVolumeSource) -> Self {
8739 value.clone()
8740 }
8741}
8742#[doc = "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data."]
8743#[derive(Clone, Debug, Deserialize, Serialize)]
8744pub struct IoK8sApiCoreV1Event {
8745 #[doc = "What action was taken/failed regarding to the Regarding object."]
8746 #[serde(default, skip_serializing_if = "Option::is_none")]
8747 pub action: Option<String>,
8748 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources"]
8749 #[serde(
8750 rename = "apiVersion",
8751 default,
8752 skip_serializing_if = "Option::is_none"
8753 )]
8754 pub api_version: Option<String>,
8755 #[doc = "The number of times this event has occurred."]
8756 #[serde(default, skip_serializing_if = "Option::is_none")]
8757 pub count: Option<i64>,
8758 #[doc = "Time when this Event was first observed."]
8759 #[serde(rename = "eventTime", default, skip_serializing_if = "Option::is_none")]
8760 pub event_time: Option<IoK8sApimachineryPkgApisMetaV1MicroTime>,
8761 #[doc = "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)"]
8762 #[serde(
8763 rename = "firstTimestamp",
8764 default,
8765 skip_serializing_if = "Option::is_none"
8766 )]
8767 pub first_timestamp: Option<IoK8sApimachineryPkgApisMetaV1Time>,
8768 #[doc = "The object that this event is about."]
8769 #[serde(rename = "involvedObject")]
8770 pub involved_object: IoK8sApiCoreV1ObjectReference,
8771 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
8772 #[serde(default, skip_serializing_if = "Option::is_none")]
8773 pub kind: Option<String>,
8774 #[doc = "The time at which the most recent occurrence of this event was recorded."]
8775 #[serde(
8776 rename = "lastTimestamp",
8777 default,
8778 skip_serializing_if = "Option::is_none"
8779 )]
8780 pub last_timestamp: Option<IoK8sApimachineryPkgApisMetaV1Time>,
8781 #[doc = "A human-readable description of the status of this operation."]
8782 #[serde(default, skip_serializing_if = "Option::is_none")]
8783 pub message: Option<String>,
8784 #[doc = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"]
8785 pub metadata: IoK8sApimachineryPkgApisMetaV1ObjectMeta,
8786 #[doc = "This should be a short, machine understandable string that gives the reason for the transition into the object's current status."]
8787 #[serde(default, skip_serializing_if = "Option::is_none")]
8788 pub reason: Option<String>,
8789 #[doc = "Optional secondary object for more complex actions."]
8790 #[serde(default, skip_serializing_if = "Option::is_none")]
8791 pub related: Option<IoK8sApiCoreV1ObjectReference>,
8792 #[doc = "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`."]
8793 #[serde(
8794 rename = "reportingComponent",
8795 default,
8796 skip_serializing_if = "Option::is_none"
8797 )]
8798 pub reporting_component: Option<String>,
8799 #[doc = "ID of the controller instance, e.g. `kubelet-xyzf`."]
8800 #[serde(
8801 rename = "reportingInstance",
8802 default,
8803 skip_serializing_if = "Option::is_none"
8804 )]
8805 pub reporting_instance: Option<String>,
8806 #[doc = "Data about the Event series this event represents or nil if it's a singleton Event."]
8807 #[serde(default, skip_serializing_if = "Option::is_none")]
8808 pub series: Option<IoK8sApiCoreV1EventSeries>,
8809 #[doc = "The component reporting this event. Should be a short machine understandable string."]
8810 #[serde(default, skip_serializing_if = "Option::is_none")]
8811 pub source: Option<IoK8sApiCoreV1EventSource>,
8812 #[doc = "Type of this event (Normal, Warning), new types could be added in the future"]
8813 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
8814 pub type_: Option<String>,
8815}
8816impl From<&IoK8sApiCoreV1Event> for IoK8sApiCoreV1Event {
8817 fn from(value: &IoK8sApiCoreV1Event) -> Self {
8818 value.clone()
8819 }
8820}
8821#[doc = "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time."]
8822#[derive(Clone, Debug, Deserialize, Serialize)]
8823pub struct IoK8sApiCoreV1EventSeries {
8824 #[doc = "Number of occurrences in this series up to the last heartbeat time"]
8825 #[serde(default, skip_serializing_if = "Option::is_none")]
8826 pub count: Option<i64>,
8827 #[doc = "Time of the last occurrence observed"]
8828 #[serde(
8829 rename = "lastObservedTime",
8830 default,
8831 skip_serializing_if = "Option::is_none"
8832 )]
8833 pub last_observed_time: Option<IoK8sApimachineryPkgApisMetaV1MicroTime>,
8834}
8835impl From<&IoK8sApiCoreV1EventSeries> for IoK8sApiCoreV1EventSeries {
8836 fn from(value: &IoK8sApiCoreV1EventSeries) -> Self {
8837 value.clone()
8838 }
8839}
8840#[doc = "EventSource contains information for an event."]
8841#[derive(Clone, Debug, Deserialize, Serialize)]
8842pub struct IoK8sApiCoreV1EventSource {
8843 #[doc = "Component from which the event is generated."]
8844 #[serde(default, skip_serializing_if = "Option::is_none")]
8845 pub component: Option<String>,
8846 #[doc = "Node name on which the event is generated."]
8847 #[serde(default, skip_serializing_if = "Option::is_none")]
8848 pub host: Option<String>,
8849}
8850impl From<&IoK8sApiCoreV1EventSource> for IoK8sApiCoreV1EventSource {
8851 fn from(value: &IoK8sApiCoreV1EventSource) -> Self {
8852 value.clone()
8853 }
8854}
8855#[doc = "ExecAction describes a \"run in container\" action."]
8856#[derive(Clone, Debug, Deserialize, Serialize)]
8857pub struct IoK8sApiCoreV1ExecAction {
8858 #[doc = "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy."]
8859 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8860 pub command: Vec<String>,
8861}
8862impl From<&IoK8sApiCoreV1ExecAction> for IoK8sApiCoreV1ExecAction {
8863 fn from(value: &IoK8sApiCoreV1ExecAction) -> Self {
8864 value.clone()
8865 }
8866}
8867#[doc = "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling."]
8868#[derive(Clone, Debug, Deserialize, Serialize)]
8869pub struct IoK8sApiCoreV1FcVolumeSource {
8870 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."]
8871 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8872 pub fs_type: Option<String>,
8873 #[doc = "Optional: FC target lun number"]
8874 #[serde(default, skip_serializing_if = "Option::is_none")]
8875 pub lun: Option<i64>,
8876 #[doc = "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
8877 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8878 pub read_only: Option<bool>,
8879 #[doc = "Optional: FC target worldwide names (WWNs)"]
8880 #[serde(rename = "targetWWNs", default, skip_serializing_if = "Vec::is_empty")]
8881 pub target_ww_ns: Vec<String>,
8882 #[doc = "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously."]
8883 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8884 pub wwids: Vec<String>,
8885}
8886impl From<&IoK8sApiCoreV1FcVolumeSource> for IoK8sApiCoreV1FcVolumeSource {
8887 fn from(value: &IoK8sApiCoreV1FcVolumeSource) -> Self {
8888 value.clone()
8889 }
8890}
8891#[doc = "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin."]
8892#[derive(Clone, Debug, Deserialize, Serialize)]
8893pub struct IoK8sApiCoreV1FlexVolumeSource {
8894 #[doc = "Driver is the name of the driver to use for this volume."]
8895 pub driver: String,
8896 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script."]
8897 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8898 pub fs_type: Option<String>,
8899 #[doc = "Optional: Extra command options if any."]
8900 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
8901 pub options: std::collections::HashMap<String, String>,
8902 #[doc = "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
8903 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8904 pub read_only: Option<bool>,
8905 #[doc = "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts."]
8906 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
8907 pub secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
8908}
8909impl From<&IoK8sApiCoreV1FlexVolumeSource> for IoK8sApiCoreV1FlexVolumeSource {
8910 fn from(value: &IoK8sApiCoreV1FlexVolumeSource) -> Self {
8911 value.clone()
8912 }
8913}
8914#[doc = "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling."]
8915#[derive(Clone, Debug, Deserialize, Serialize)]
8916pub struct IoK8sApiCoreV1FlockerVolumeSource {
8917 #[doc = "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated"]
8918 #[serde(
8919 rename = "datasetName",
8920 default,
8921 skip_serializing_if = "Option::is_none"
8922 )]
8923 pub dataset_name: Option<String>,
8924 #[doc = "UUID of the dataset. This is unique identifier of a Flocker dataset"]
8925 #[serde(
8926 rename = "datasetUUID",
8927 default,
8928 skip_serializing_if = "Option::is_none"
8929 )]
8930 pub dataset_uuid: Option<String>,
8931}
8932impl From<&IoK8sApiCoreV1FlockerVolumeSource> for IoK8sApiCoreV1FlockerVolumeSource {
8933 fn from(value: &IoK8sApiCoreV1FlockerVolumeSource) -> Self {
8934 value.clone()
8935 }
8936}
8937#[doc = "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling."]
8938#[derive(Clone, Debug, Deserialize, Serialize)]
8939pub struct IoK8sApiCoreV1GcePersistentDiskVolumeSource {
8940 #[doc = "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"]
8941 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
8942 pub fs_type: Option<String>,
8943 #[doc = "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"]
8944 #[serde(default, skip_serializing_if = "Option::is_none")]
8945 pub partition: Option<i64>,
8946 #[doc = "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"]
8947 #[serde(rename = "pdName")]
8948 pub pd_name: String,
8949 #[doc = "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"]
8950 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8951 pub read_only: Option<bool>,
8952}
8953impl From<&IoK8sApiCoreV1GcePersistentDiskVolumeSource>
8954 for IoK8sApiCoreV1GcePersistentDiskVolumeSource
8955{
8956 fn from(value: &IoK8sApiCoreV1GcePersistentDiskVolumeSource) -> Self {
8957 value.clone()
8958 }
8959}
8960#[doc = "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container."]
8961#[derive(Clone, Debug, Deserialize, Serialize)]
8962pub struct IoK8sApiCoreV1GitRepoVolumeSource {
8963 #[doc = "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name."]
8964 #[serde(default, skip_serializing_if = "Option::is_none")]
8965 pub directory: Option<String>,
8966 #[doc = "Repository URL"]
8967 pub repository: String,
8968 #[doc = "Commit hash for the specified revision."]
8969 #[serde(default, skip_serializing_if = "Option::is_none")]
8970 pub revision: Option<String>,
8971}
8972impl From<&IoK8sApiCoreV1GitRepoVolumeSource> for IoK8sApiCoreV1GitRepoVolumeSource {
8973 fn from(value: &IoK8sApiCoreV1GitRepoVolumeSource) -> Self {
8974 value.clone()
8975 }
8976}
8977#[doc = "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling."]
8978#[derive(Clone, Debug, Deserialize, Serialize)]
8979pub struct IoK8sApiCoreV1GlusterfsVolumeSource {
8980 #[doc = "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod"]
8981 pub endpoints: String,
8982 #[doc = "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod"]
8983 pub path: String,
8984 #[doc = "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod"]
8985 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
8986 pub read_only: Option<bool>,
8987}
8988impl From<&IoK8sApiCoreV1GlusterfsVolumeSource> for IoK8sApiCoreV1GlusterfsVolumeSource {
8989 fn from(value: &IoK8sApiCoreV1GlusterfsVolumeSource) -> Self {
8990 value.clone()
8991 }
8992}
8993#[derive(Clone, Debug, Deserialize, Serialize)]
8994pub struct IoK8sApiCoreV1GrpcAction {
8995 #[doc = "Port number of the gRPC service. Number must be in the range 1 to 65535."]
8996 pub port: i64,
8997 #[doc = "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC."]
8998 #[serde(default, skip_serializing_if = "Option::is_none")]
8999 pub service: Option<String>,
9000}
9001impl From<&IoK8sApiCoreV1GrpcAction> for IoK8sApiCoreV1GrpcAction {
9002 fn from(value: &IoK8sApiCoreV1GrpcAction) -> Self {
9003 value.clone()
9004 }
9005}
9006#[doc = "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file."]
9007#[derive(Clone, Debug, Deserialize, Serialize)]
9008pub struct IoK8sApiCoreV1HostAlias {
9009 #[doc = "Hostnames for the above IP address."]
9010 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9011 pub hostnames: Vec<String>,
9012 #[doc = "IP address of the host file entry."]
9013 #[serde(default, skip_serializing_if = "Option::is_none")]
9014 pub ip: Option<String>,
9015}
9016impl From<&IoK8sApiCoreV1HostAlias> for IoK8sApiCoreV1HostAlias {
9017 fn from(value: &IoK8sApiCoreV1HostAlias) -> Self {
9018 value.clone()
9019 }
9020}
9021#[doc = "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling."]
9022#[derive(Clone, Debug, Deserialize, Serialize)]
9023pub struct IoK8sApiCoreV1HostPathVolumeSource {
9024 #[doc = "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"]
9025 pub path: String,
9026 #[doc = "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"]
9027 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
9028 pub type_: Option<String>,
9029}
9030impl From<&IoK8sApiCoreV1HostPathVolumeSource> for IoK8sApiCoreV1HostPathVolumeSource {
9031 fn from(value: &IoK8sApiCoreV1HostPathVolumeSource) -> Self {
9032 value.clone()
9033 }
9034}
9035#[doc = "HTTPGetAction describes an action based on HTTP Get requests."]
9036#[derive(Clone, Debug, Deserialize, Serialize)]
9037pub struct IoK8sApiCoreV1HttpGetAction {
9038 #[doc = "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead."]
9039 #[serde(default, skip_serializing_if = "Option::is_none")]
9040 pub host: Option<String>,
9041 #[doc = "Custom headers to set in the request. HTTP allows repeated headers."]
9042 #[serde(rename = "httpHeaders", default, skip_serializing_if = "Vec::is_empty")]
9043 pub http_headers: Vec<IoK8sApiCoreV1HttpHeader>,
9044 #[doc = "Path to access on the HTTP server."]
9045 #[serde(default, skip_serializing_if = "Option::is_none")]
9046 pub path: Option<String>,
9047 #[doc = "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME."]
9048 pub port: IoK8sApimachineryPkgUtilIntstrIntOrString,
9049 #[doc = "Scheme to use for connecting to the host. Defaults to HTTP.\n\nPossible enum values:\n - `\"HTTP\"` means that the scheme used will be http://\n - `\"HTTPS\"` means that the scheme used will be https://"]
9050 #[serde(default, skip_serializing_if = "Option::is_none")]
9051 pub scheme: Option<IoK8sApiCoreV1HttpGetActionScheme>,
9052}
9053impl From<&IoK8sApiCoreV1HttpGetAction> for IoK8sApiCoreV1HttpGetAction {
9054 fn from(value: &IoK8sApiCoreV1HttpGetAction) -> Self {
9055 value.clone()
9056 }
9057}
9058#[doc = "Scheme to use for connecting to the host. Defaults to HTTP.\n\nPossible enum values:\n - `\"HTTP\"` means that the scheme used will be http://\n - `\"HTTPS\"` means that the scheme used will be https://"]
9059#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
9060pub enum IoK8sApiCoreV1HttpGetActionScheme {
9061 #[serde(rename = "HTTP")]
9062 Http,
9063 #[serde(rename = "HTTPS")]
9064 Https,
9065}
9066impl From<&IoK8sApiCoreV1HttpGetActionScheme> for IoK8sApiCoreV1HttpGetActionScheme {
9067 fn from(value: &IoK8sApiCoreV1HttpGetActionScheme) -> Self {
9068 value.clone()
9069 }
9070}
9071impl ToString for IoK8sApiCoreV1HttpGetActionScheme {
9072 fn to_string(&self) -> String {
9073 match *self {
9074 Self::Http => "HTTP".to_string(),
9075 Self::Https => "HTTPS".to_string(),
9076 }
9077 }
9078}
9079impl std::str::FromStr for IoK8sApiCoreV1HttpGetActionScheme {
9080 type Err = &'static str;
9081 fn from_str(value: &str) -> Result<Self, &'static str> {
9082 match value {
9083 "HTTP" => Ok(Self::Http),
9084 "HTTPS" => Ok(Self::Https),
9085 _ => Err("invalid value"),
9086 }
9087 }
9088}
9089impl std::convert::TryFrom<&str> for IoK8sApiCoreV1HttpGetActionScheme {
9090 type Error = &'static str;
9091 fn try_from(value: &str) -> Result<Self, &'static str> {
9092 value.parse()
9093 }
9094}
9095impl std::convert::TryFrom<&String> for IoK8sApiCoreV1HttpGetActionScheme {
9096 type Error = &'static str;
9097 fn try_from(value: &String) -> Result<Self, &'static str> {
9098 value.parse()
9099 }
9100}
9101impl std::convert::TryFrom<String> for IoK8sApiCoreV1HttpGetActionScheme {
9102 type Error = &'static str;
9103 fn try_from(value: String) -> Result<Self, &'static str> {
9104 value.parse()
9105 }
9106}
9107#[doc = "HTTPHeader describes a custom header to be used in HTTP probes"]
9108#[derive(Clone, Debug, Deserialize, Serialize)]
9109pub struct IoK8sApiCoreV1HttpHeader {
9110 #[doc = "The header field name"]
9111 pub name: String,
9112 #[doc = "The header field value"]
9113 pub value: String,
9114}
9115impl From<&IoK8sApiCoreV1HttpHeader> for IoK8sApiCoreV1HttpHeader {
9116 fn from(value: &IoK8sApiCoreV1HttpHeader) -> Self {
9117 value.clone()
9118 }
9119}
9120#[doc = "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling."]
9121#[derive(Clone, Debug, Deserialize, Serialize)]
9122pub struct IoK8sApiCoreV1IscsiVolumeSource {
9123 #[doc = "whether support iSCSI Discovery CHAP authentication"]
9124 #[serde(
9125 rename = "chapAuthDiscovery",
9126 default,
9127 skip_serializing_if = "Option::is_none"
9128 )]
9129 pub chap_auth_discovery: Option<bool>,
9130 #[doc = "whether support iSCSI Session CHAP authentication"]
9131 #[serde(
9132 rename = "chapAuthSession",
9133 default,
9134 skip_serializing_if = "Option::is_none"
9135 )]
9136 pub chap_auth_session: Option<bool>,
9137 #[doc = "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi"]
9138 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
9139 pub fs_type: Option<String>,
9140 #[doc = "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection."]
9141 #[serde(
9142 rename = "initiatorName",
9143 default,
9144 skip_serializing_if = "Option::is_none"
9145 )]
9146 pub initiator_name: Option<String>,
9147 #[doc = "Target iSCSI Qualified Name."]
9148 pub iqn: String,
9149 #[doc = "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp)."]
9150 #[serde(
9151 rename = "iscsiInterface",
9152 default,
9153 skip_serializing_if = "Option::is_none"
9154 )]
9155 pub iscsi_interface: Option<String>,
9156 #[doc = "iSCSI Target Lun number."]
9157 pub lun: i64,
9158 #[doc = "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)."]
9159 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9160 pub portals: Vec<String>,
9161 #[doc = "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false."]
9162 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
9163 pub read_only: Option<bool>,
9164 #[doc = "CHAP Secret for iSCSI target and initiator authentication"]
9165 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
9166 pub secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
9167 #[doc = "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)."]
9168 #[serde(rename = "targetPortal")]
9169 pub target_portal: String,
9170}
9171impl From<&IoK8sApiCoreV1IscsiVolumeSource> for IoK8sApiCoreV1IscsiVolumeSource {
9172 fn from(value: &IoK8sApiCoreV1IscsiVolumeSource) -> Self {
9173 value.clone()
9174 }
9175}
9176#[doc = "Maps a string key to a path within a volume."]
9177#[derive(Clone, Debug, Deserialize, Serialize)]
9178pub struct IoK8sApiCoreV1KeyToPath {
9179 #[doc = "The key to project."]
9180 pub key: String,
9181 #[doc = "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."]
9182 #[serde(default, skip_serializing_if = "Option::is_none")]
9183 pub mode: Option<i64>,
9184 #[doc = "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'."]
9185 pub path: String,
9186}
9187impl From<&IoK8sApiCoreV1KeyToPath> for IoK8sApiCoreV1KeyToPath {
9188 fn from(value: &IoK8sApiCoreV1KeyToPath) -> Self {
9189 value.clone()
9190 }
9191}
9192#[doc = "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted."]
9193#[derive(Clone, Debug, Deserialize, Serialize)]
9194pub struct IoK8sApiCoreV1Lifecycle {
9195 #[doc = "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks"]
9196 #[serde(rename = "postStart", default, skip_serializing_if = "Option::is_none")]
9197 pub post_start: Option<IoK8sApiCoreV1LifecycleHandler>,
9198 #[doc = "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks"]
9199 #[serde(rename = "preStop", default, skip_serializing_if = "Option::is_none")]
9200 pub pre_stop: Option<IoK8sApiCoreV1LifecycleHandler>,
9201}
9202impl From<&IoK8sApiCoreV1Lifecycle> for IoK8sApiCoreV1Lifecycle {
9203 fn from(value: &IoK8sApiCoreV1Lifecycle) -> Self {
9204 value.clone()
9205 }
9206}
9207#[doc = "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified."]
9208#[derive(Clone, Debug, Deserialize, Serialize)]
9209pub struct IoK8sApiCoreV1LifecycleHandler {
9210 #[doc = "Exec specifies the action to take."]
9211 #[serde(default, skip_serializing_if = "Option::is_none")]
9212 pub exec: Option<IoK8sApiCoreV1ExecAction>,
9213 #[doc = "HTTPGet specifies the http request to perform."]
9214 #[serde(rename = "httpGet", default, skip_serializing_if = "Option::is_none")]
9215 pub http_get: Option<IoK8sApiCoreV1HttpGetAction>,
9216 #[doc = "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified."]
9217 #[serde(rename = "tcpSocket", default, skip_serializing_if = "Option::is_none")]
9218 pub tcp_socket: Option<IoK8sApiCoreV1TcpSocketAction>,
9219}
9220impl From<&IoK8sApiCoreV1LifecycleHandler> for IoK8sApiCoreV1LifecycleHandler {
9221 fn from(value: &IoK8sApiCoreV1LifecycleHandler) -> Self {
9222 value.clone()
9223 }
9224}
9225#[doc = "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace."]
9226#[derive(Clone, Debug, Deserialize, Serialize)]
9227pub struct IoK8sApiCoreV1LocalObjectReference {
9228 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
9229 #[serde(default, skip_serializing_if = "Option::is_none")]
9230 pub name: Option<String>,
9231}
9232impl From<&IoK8sApiCoreV1LocalObjectReference> for IoK8sApiCoreV1LocalObjectReference {
9233 fn from(value: &IoK8sApiCoreV1LocalObjectReference) -> Self {
9234 value.clone()
9235 }
9236}
9237#[doc = "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling."]
9238#[derive(Clone, Debug, Deserialize, Serialize)]
9239pub struct IoK8sApiCoreV1NfsVolumeSource {
9240 #[doc = "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"]
9241 pub path: String,
9242 #[doc = "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"]
9243 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
9244 pub read_only: Option<bool>,
9245 #[doc = "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"]
9246 pub server: String,
9247}
9248impl From<&IoK8sApiCoreV1NfsVolumeSource> for IoK8sApiCoreV1NfsVolumeSource {
9249 fn from(value: &IoK8sApiCoreV1NfsVolumeSource) -> Self {
9250 value.clone()
9251 }
9252}
9253#[doc = "Node affinity is a group of node affinity scheduling rules."]
9254#[derive(Clone, Debug, Deserialize, Serialize)]
9255pub struct IoK8sApiCoreV1NodeAffinity {
9256 #[doc = "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred."]
9257 #[serde(
9258 rename = "preferredDuringSchedulingIgnoredDuringExecution",
9259 default,
9260 skip_serializing_if = "Vec::is_empty"
9261 )]
9262 pub preferred_during_scheduling_ignored_during_execution:
9263 Vec<IoK8sApiCoreV1PreferredSchedulingTerm>,
9264 #[doc = "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node."]
9265 #[serde(
9266 rename = "requiredDuringSchedulingIgnoredDuringExecution",
9267 default,
9268 skip_serializing_if = "Option::is_none"
9269 )]
9270 pub required_during_scheduling_ignored_during_execution: Option<IoK8sApiCoreV1NodeSelector>,
9271}
9272impl From<&IoK8sApiCoreV1NodeAffinity> for IoK8sApiCoreV1NodeAffinity {
9273 fn from(value: &IoK8sApiCoreV1NodeAffinity) -> Self {
9274 value.clone()
9275 }
9276}
9277#[doc = "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms."]
9278#[derive(Clone, Debug, Deserialize, Serialize)]
9279pub struct IoK8sApiCoreV1NodeSelector {
9280 #[doc = "Required. A list of node selector terms. The terms are ORed."]
9281 #[serde(rename = "nodeSelectorTerms")]
9282 pub node_selector_terms: Vec<IoK8sApiCoreV1NodeSelectorTerm>,
9283}
9284impl From<&IoK8sApiCoreV1NodeSelector> for IoK8sApiCoreV1NodeSelector {
9285 fn from(value: &IoK8sApiCoreV1NodeSelector) -> Self {
9286 value.clone()
9287 }
9288}
9289#[doc = "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values."]
9290#[derive(Clone, Debug, Deserialize, Serialize)]
9291pub struct IoK8sApiCoreV1NodeSelectorRequirement {
9292 #[doc = "The label key that the selector applies to."]
9293 pub key: String,
9294 #[doc = "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\nPossible enum values:\n - `\"DoesNotExist\"`\n - `\"Exists\"`\n - `\"Gt\"`\n - `\"In\"`\n - `\"Lt\"`\n - `\"NotIn\"`"]
9295 pub operator: IoK8sApiCoreV1NodeSelectorRequirementOperator,
9296 #[doc = "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch."]
9297 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9298 pub values: Vec<String>,
9299}
9300impl From<&IoK8sApiCoreV1NodeSelectorRequirement> for IoK8sApiCoreV1NodeSelectorRequirement {
9301 fn from(value: &IoK8sApiCoreV1NodeSelectorRequirement) -> Self {
9302 value.clone()
9303 }
9304}
9305#[doc = "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\nPossible enum values:\n - `\"DoesNotExist\"`\n - `\"Exists\"`\n - `\"Gt\"`\n - `\"In\"`\n - `\"Lt\"`\n - `\"NotIn\"`"]
9306#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
9307pub enum IoK8sApiCoreV1NodeSelectorRequirementOperator {
9308 DoesNotExist,
9309 Exists,
9310 Gt,
9311 In,
9312 Lt,
9313 NotIn,
9314}
9315impl From<&IoK8sApiCoreV1NodeSelectorRequirementOperator>
9316 for IoK8sApiCoreV1NodeSelectorRequirementOperator
9317{
9318 fn from(value: &IoK8sApiCoreV1NodeSelectorRequirementOperator) -> Self {
9319 value.clone()
9320 }
9321}
9322impl ToString for IoK8sApiCoreV1NodeSelectorRequirementOperator {
9323 fn to_string(&self) -> String {
9324 match *self {
9325 Self::DoesNotExist => "DoesNotExist".to_string(),
9326 Self::Exists => "Exists".to_string(),
9327 Self::Gt => "Gt".to_string(),
9328 Self::In => "In".to_string(),
9329 Self::Lt => "Lt".to_string(),
9330 Self::NotIn => "NotIn".to_string(),
9331 }
9332 }
9333}
9334impl std::str::FromStr for IoK8sApiCoreV1NodeSelectorRequirementOperator {
9335 type Err = &'static str;
9336 fn from_str(value: &str) -> Result<Self, &'static str> {
9337 match value {
9338 "DoesNotExist" => Ok(Self::DoesNotExist),
9339 "Exists" => Ok(Self::Exists),
9340 "Gt" => Ok(Self::Gt),
9341 "In" => Ok(Self::In),
9342 "Lt" => Ok(Self::Lt),
9343 "NotIn" => Ok(Self::NotIn),
9344 _ => Err("invalid value"),
9345 }
9346 }
9347}
9348impl std::convert::TryFrom<&str> for IoK8sApiCoreV1NodeSelectorRequirementOperator {
9349 type Error = &'static str;
9350 fn try_from(value: &str) -> Result<Self, &'static str> {
9351 value.parse()
9352 }
9353}
9354impl std::convert::TryFrom<&String> for IoK8sApiCoreV1NodeSelectorRequirementOperator {
9355 type Error = &'static str;
9356 fn try_from(value: &String) -> Result<Self, &'static str> {
9357 value.parse()
9358 }
9359}
9360impl std::convert::TryFrom<String> for IoK8sApiCoreV1NodeSelectorRequirementOperator {
9361 type Error = &'static str;
9362 fn try_from(value: String) -> Result<Self, &'static str> {
9363 value.parse()
9364 }
9365}
9366#[doc = "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm."]
9367#[derive(Clone, Debug, Deserialize, Serialize)]
9368pub struct IoK8sApiCoreV1NodeSelectorTerm {
9369 #[doc = "A list of node selector requirements by node's labels."]
9370 #[serde(
9371 rename = "matchExpressions",
9372 default,
9373 skip_serializing_if = "Vec::is_empty"
9374 )]
9375 pub match_expressions: Vec<IoK8sApiCoreV1NodeSelectorRequirement>,
9376 #[doc = "A list of node selector requirements by node's fields."]
9377 #[serde(rename = "matchFields", default, skip_serializing_if = "Vec::is_empty")]
9378 pub match_fields: Vec<IoK8sApiCoreV1NodeSelectorRequirement>,
9379}
9380impl From<&IoK8sApiCoreV1NodeSelectorTerm> for IoK8sApiCoreV1NodeSelectorTerm {
9381 fn from(value: &IoK8sApiCoreV1NodeSelectorTerm) -> Self {
9382 value.clone()
9383 }
9384}
9385#[doc = "ObjectFieldSelector selects an APIVersioned field of an object."]
9386#[derive(Clone, Debug, Deserialize, Serialize)]
9387pub struct IoK8sApiCoreV1ObjectFieldSelector {
9388 #[doc = "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"."]
9389 #[serde(
9390 rename = "apiVersion",
9391 default,
9392 skip_serializing_if = "Option::is_none"
9393 )]
9394 pub api_version: Option<String>,
9395 #[doc = "Path of the field to select in the specified API version."]
9396 #[serde(rename = "fieldPath")]
9397 pub field_path: String,
9398}
9399impl From<&IoK8sApiCoreV1ObjectFieldSelector> for IoK8sApiCoreV1ObjectFieldSelector {
9400 fn from(value: &IoK8sApiCoreV1ObjectFieldSelector) -> Self {
9401 value.clone()
9402 }
9403}
9404#[doc = "ObjectReference contains enough information to let you inspect or modify the referred object."]
9405#[derive(Clone, Debug, Deserialize, Serialize)]
9406pub struct IoK8sApiCoreV1ObjectReference {
9407 #[doc = "API version of the referent."]
9408 #[serde(
9409 rename = "apiVersion",
9410 default,
9411 skip_serializing_if = "Option::is_none"
9412 )]
9413 pub api_version: Option<String>,
9414 #[doc = "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object."]
9415 #[serde(rename = "fieldPath", default, skip_serializing_if = "Option::is_none")]
9416 pub field_path: Option<String>,
9417 #[doc = "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
9418 #[serde(default, skip_serializing_if = "Option::is_none")]
9419 pub kind: Option<String>,
9420 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
9421 #[serde(default, skip_serializing_if = "Option::is_none")]
9422 pub name: Option<String>,
9423 #[doc = "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/"]
9424 #[serde(default, skip_serializing_if = "Option::is_none")]
9425 pub namespace: Option<String>,
9426 #[doc = "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency"]
9427 #[serde(
9428 rename = "resourceVersion",
9429 default,
9430 skip_serializing_if = "Option::is_none"
9431 )]
9432 pub resource_version: Option<String>,
9433 #[doc = "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids"]
9434 #[serde(default, skip_serializing_if = "Option::is_none")]
9435 pub uid: Option<String>,
9436}
9437impl From<&IoK8sApiCoreV1ObjectReference> for IoK8sApiCoreV1ObjectReference {
9438 fn from(value: &IoK8sApiCoreV1ObjectReference) -> Self {
9439 value.clone()
9440 }
9441}
9442#[doc = "PersistentVolumeClaim is a user's request for and claim to a persistent volume"]
9443#[derive(Clone, Debug, Deserialize, Serialize)]
9444pub struct IoK8sApiCoreV1PersistentVolumeClaim {
9445 #[doc = "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources"]
9446 #[serde(
9447 rename = "apiVersion",
9448 default,
9449 skip_serializing_if = "Option::is_none"
9450 )]
9451 pub api_version: Option<String>,
9452 #[doc = "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
9453 #[serde(default, skip_serializing_if = "Option::is_none")]
9454 pub kind: Option<String>,
9455 #[doc = "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"]
9456 #[serde(default, skip_serializing_if = "Option::is_none")]
9457 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ObjectMeta>,
9458 #[doc = "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"]
9459 #[serde(default, skip_serializing_if = "Option::is_none")]
9460 pub spec: Option<IoK8sApiCoreV1PersistentVolumeClaimSpec>,
9461 #[doc = "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"]
9462 #[serde(default, skip_serializing_if = "Option::is_none")]
9463 pub status: Option<IoK8sApiCoreV1PersistentVolumeClaimStatus>,
9464}
9465impl From<&IoK8sApiCoreV1PersistentVolumeClaim> for IoK8sApiCoreV1PersistentVolumeClaim {
9466 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaim) -> Self {
9467 value.clone()
9468 }
9469}
9470#[doc = "PersistentVolumeClaimCondition contails details about state of pvc"]
9471#[derive(Clone, Debug, Deserialize, Serialize)]
9472pub struct IoK8sApiCoreV1PersistentVolumeClaimCondition {
9473 #[doc = "Last time we probed the condition."]
9474 #[serde(
9475 rename = "lastProbeTime",
9476 default,
9477 skip_serializing_if = "Option::is_none"
9478 )]
9479 pub last_probe_time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
9480 #[doc = "Last time the condition transitioned from one status to another."]
9481 #[serde(
9482 rename = "lastTransitionTime",
9483 default,
9484 skip_serializing_if = "Option::is_none"
9485 )]
9486 pub last_transition_time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
9487 #[doc = "Human-readable message indicating details about last transition."]
9488 #[serde(default, skip_serializing_if = "Option::is_none")]
9489 pub message: Option<String>,
9490 #[doc = "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized."]
9491 #[serde(default, skip_serializing_if = "Option::is_none")]
9492 pub reason: Option<String>,
9493 pub status: String,
9494 #[doc = "\n\n\nPossible enum values:\n - `\"FileSystemResizePending\"` - controller resize is finished and a file system resize is pending on node\n - `\"Resizing\"` - a user trigger resize of pvc has been started"]
9495 #[serde(rename = "type")]
9496 pub type_: IoK8sApiCoreV1PersistentVolumeClaimConditionType,
9497}
9498impl From<&IoK8sApiCoreV1PersistentVolumeClaimCondition>
9499 for IoK8sApiCoreV1PersistentVolumeClaimCondition
9500{
9501 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimCondition) -> Self {
9502 value.clone()
9503 }
9504}
9505#[doc = "\n\n\nPossible enum values:\n - `\"FileSystemResizePending\"` - controller resize is finished and a file system resize is pending on node\n - `\"Resizing\"` - a user trigger resize of pvc has been started"]
9506#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
9507pub enum IoK8sApiCoreV1PersistentVolumeClaimConditionType {
9508 FileSystemResizePending,
9509 Resizing,
9510}
9511impl From<&IoK8sApiCoreV1PersistentVolumeClaimConditionType>
9512 for IoK8sApiCoreV1PersistentVolumeClaimConditionType
9513{
9514 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimConditionType) -> Self {
9515 value.clone()
9516 }
9517}
9518impl ToString for IoK8sApiCoreV1PersistentVolumeClaimConditionType {
9519 fn to_string(&self) -> String {
9520 match *self {
9521 Self::FileSystemResizePending => "FileSystemResizePending".to_string(),
9522 Self::Resizing => "Resizing".to_string(),
9523 }
9524 }
9525}
9526impl std::str::FromStr for IoK8sApiCoreV1PersistentVolumeClaimConditionType {
9527 type Err = &'static str;
9528 fn from_str(value: &str) -> Result<Self, &'static str> {
9529 match value {
9530 "FileSystemResizePending" => Ok(Self::FileSystemResizePending),
9531 "Resizing" => Ok(Self::Resizing),
9532 _ => Err("invalid value"),
9533 }
9534 }
9535}
9536impl std::convert::TryFrom<&str> for IoK8sApiCoreV1PersistentVolumeClaimConditionType {
9537 type Error = &'static str;
9538 fn try_from(value: &str) -> Result<Self, &'static str> {
9539 value.parse()
9540 }
9541}
9542impl std::convert::TryFrom<&String> for IoK8sApiCoreV1PersistentVolumeClaimConditionType {
9543 type Error = &'static str;
9544 fn try_from(value: &String) -> Result<Self, &'static str> {
9545 value.parse()
9546 }
9547}
9548impl std::convert::TryFrom<String> for IoK8sApiCoreV1PersistentVolumeClaimConditionType {
9549 type Error = &'static str;
9550 fn try_from(value: String) -> Result<Self, &'static str> {
9551 value.parse()
9552 }
9553}
9554#[doc = "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes"]
9555#[derive(Clone, Debug, Deserialize, Serialize)]
9556pub struct IoK8sApiCoreV1PersistentVolumeClaimSpec {
9557 #[doc = "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1"]
9558 #[serde(rename = "accessModes", default, skip_serializing_if = "Vec::is_empty")]
9559 pub access_modes: Vec<String>,
9560 #[doc = "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field."]
9561 #[serde(
9562 rename = "dataSource",
9563 default,
9564 skip_serializing_if = "Option::is_none"
9565 )]
9566 pub data_source: Option<IoK8sApiCoreV1TypedLocalObjectReference>,
9567 #[doc = "Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\n preserves all values, and generates an error if a disallowed value is\n specified.\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled."]
9568 #[serde(
9569 rename = "dataSourceRef",
9570 default,
9571 skip_serializing_if = "Option::is_none"
9572 )]
9573 pub data_source_ref: Option<IoK8sApiCoreV1TypedLocalObjectReference>,
9574 #[doc = "Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources"]
9575 #[serde(default, skip_serializing_if = "Option::is_none")]
9576 pub resources: Option<IoK8sApiCoreV1ResourceRequirements>,
9577 #[doc = "A label query over volumes to consider for binding."]
9578 #[serde(default, skip_serializing_if = "Option::is_none")]
9579 pub selector: Option<IoK8sApimachineryPkgApisMetaV1LabelSelector>,
9580 #[doc = "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1"]
9581 #[serde(
9582 rename = "storageClassName",
9583 default,
9584 skip_serializing_if = "Option::is_none"
9585 )]
9586 pub storage_class_name: Option<String>,
9587 #[doc = "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec."]
9588 #[serde(
9589 rename = "volumeMode",
9590 default,
9591 skip_serializing_if = "Option::is_none"
9592 )]
9593 pub volume_mode: Option<String>,
9594 #[doc = "VolumeName is the binding reference to the PersistentVolume backing this claim."]
9595 #[serde(
9596 rename = "volumeName",
9597 default,
9598 skip_serializing_if = "Option::is_none"
9599 )]
9600 pub volume_name: Option<String>,
9601}
9602impl From<&IoK8sApiCoreV1PersistentVolumeClaimSpec> for IoK8sApiCoreV1PersistentVolumeClaimSpec {
9603 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimSpec) -> Self {
9604 value.clone()
9605 }
9606}
9607#[doc = "PersistentVolumeClaimStatus is the current status of a persistent volume claim."]
9608#[derive(Clone, Debug, Deserialize, Serialize)]
9609pub struct IoK8sApiCoreV1PersistentVolumeClaimStatus {
9610 #[doc = "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1"]
9611 #[serde(rename = "accessModes", default, skip_serializing_if = "Vec::is_empty")]
9612 pub access_modes: Vec<String>,
9613 #[doc = "The storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."]
9614 #[serde(
9615 rename = "allocatedResources",
9616 default,
9617 skip_serializing_if = "std::collections::HashMap::is_empty"
9618 )]
9619 pub allocated_resources:
9620 std::collections::HashMap<String, IoK8sApimachineryPkgApiResourceQuantity>,
9621 #[doc = "Represents the actual resources of the underlying volume."]
9622 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
9623 pub capacity: std::collections::HashMap<String, IoK8sApimachineryPkgApiResourceQuantity>,
9624 #[doc = "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'."]
9625 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9626 pub conditions: Vec<IoK8sApiCoreV1PersistentVolumeClaimCondition>,
9627 #[doc = "Phase represents the current phase of PersistentVolumeClaim.\n\nPossible enum values:\n - `\"Bound\"` used for PersistentVolumeClaims that are bound\n - `\"Lost\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\n - `\"Pending\"` used for PersistentVolumeClaims that are not yet bound"]
9628 #[serde(default, skip_serializing_if = "Option::is_none")]
9629 pub phase: Option<IoK8sApiCoreV1PersistentVolumeClaimStatusPhase>,
9630 #[doc = "ResizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."]
9631 #[serde(
9632 rename = "resizeStatus",
9633 default,
9634 skip_serializing_if = "Option::is_none"
9635 )]
9636 pub resize_status: Option<String>,
9637}
9638impl From<&IoK8sApiCoreV1PersistentVolumeClaimStatus>
9639 for IoK8sApiCoreV1PersistentVolumeClaimStatus
9640{
9641 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimStatus) -> Self {
9642 value.clone()
9643 }
9644}
9645#[doc = "Phase represents the current phase of PersistentVolumeClaim.\n\nPossible enum values:\n - `\"Bound\"` used for PersistentVolumeClaims that are bound\n - `\"Lost\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\n - `\"Pending\"` used for PersistentVolumeClaims that are not yet bound"]
9646#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
9647pub enum IoK8sApiCoreV1PersistentVolumeClaimStatusPhase {
9648 Bound,
9649 Lost,
9650 Pending,
9651}
9652impl From<&IoK8sApiCoreV1PersistentVolumeClaimStatusPhase>
9653 for IoK8sApiCoreV1PersistentVolumeClaimStatusPhase
9654{
9655 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimStatusPhase) -> Self {
9656 value.clone()
9657 }
9658}
9659impl ToString for IoK8sApiCoreV1PersistentVolumeClaimStatusPhase {
9660 fn to_string(&self) -> String {
9661 match *self {
9662 Self::Bound => "Bound".to_string(),
9663 Self::Lost => "Lost".to_string(),
9664 Self::Pending => "Pending".to_string(),
9665 }
9666 }
9667}
9668impl std::str::FromStr for IoK8sApiCoreV1PersistentVolumeClaimStatusPhase {
9669 type Err = &'static str;
9670 fn from_str(value: &str) -> Result<Self, &'static str> {
9671 match value {
9672 "Bound" => Ok(Self::Bound),
9673 "Lost" => Ok(Self::Lost),
9674 "Pending" => Ok(Self::Pending),
9675 _ => Err("invalid value"),
9676 }
9677 }
9678}
9679impl std::convert::TryFrom<&str> for IoK8sApiCoreV1PersistentVolumeClaimStatusPhase {
9680 type Error = &'static str;
9681 fn try_from(value: &str) -> Result<Self, &'static str> {
9682 value.parse()
9683 }
9684}
9685impl std::convert::TryFrom<&String> for IoK8sApiCoreV1PersistentVolumeClaimStatusPhase {
9686 type Error = &'static str;
9687 fn try_from(value: &String) -> Result<Self, &'static str> {
9688 value.parse()
9689 }
9690}
9691impl std::convert::TryFrom<String> for IoK8sApiCoreV1PersistentVolumeClaimStatusPhase {
9692 type Error = &'static str;
9693 fn try_from(value: String) -> Result<Self, &'static str> {
9694 value.parse()
9695 }
9696}
9697#[doc = "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource."]
9698#[derive(Clone, Debug, Deserialize, Serialize)]
9699pub struct IoK8sApiCoreV1PersistentVolumeClaimTemplate {
9700 #[doc = "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation."]
9701 #[serde(default, skip_serializing_if = "Option::is_none")]
9702 pub metadata: Option<IoK8sApimachineryPkgApisMetaV1ObjectMeta>,
9703 #[doc = "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here."]
9704 pub spec: IoK8sApiCoreV1PersistentVolumeClaimSpec,
9705}
9706impl From<&IoK8sApiCoreV1PersistentVolumeClaimTemplate>
9707 for IoK8sApiCoreV1PersistentVolumeClaimTemplate
9708{
9709 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimTemplate) -> Self {
9710 value.clone()
9711 }
9712}
9713#[doc = "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system)."]
9714#[derive(Clone, Debug, Deserialize, Serialize)]
9715pub struct IoK8sApiCoreV1PersistentVolumeClaimVolumeSource {
9716 #[doc = "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"]
9717 #[serde(rename = "claimName")]
9718 pub claim_name: String,
9719 #[doc = "Will force the ReadOnly setting in VolumeMounts. Default false."]
9720 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
9721 pub read_only: Option<bool>,
9722}
9723impl From<&IoK8sApiCoreV1PersistentVolumeClaimVolumeSource>
9724 for IoK8sApiCoreV1PersistentVolumeClaimVolumeSource
9725{
9726 fn from(value: &IoK8sApiCoreV1PersistentVolumeClaimVolumeSource) -> Self {
9727 value.clone()
9728 }
9729}
9730#[doc = "Represents a Photon Controller persistent disk resource."]
9731#[derive(Clone, Debug, Deserialize, Serialize)]
9732pub struct IoK8sApiCoreV1PhotonPersistentDiskVolumeSource {
9733 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."]
9734 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
9735 pub fs_type: Option<String>,
9736 #[doc = "ID that identifies Photon Controller persistent disk"]
9737 #[serde(rename = "pdID")]
9738 pub pd_id: String,
9739}
9740impl From<&IoK8sApiCoreV1PhotonPersistentDiskVolumeSource>
9741 for IoK8sApiCoreV1PhotonPersistentDiskVolumeSource
9742{
9743 fn from(value: &IoK8sApiCoreV1PhotonPersistentDiskVolumeSource) -> Self {
9744 value.clone()
9745 }
9746}
9747#[doc = "Pod affinity is a group of inter pod affinity scheduling rules."]
9748#[derive(Clone, Debug, Deserialize, Serialize)]
9749pub struct IoK8sApiCoreV1PodAffinity {
9750 #[doc = "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred."]
9751 #[serde(
9752 rename = "preferredDuringSchedulingIgnoredDuringExecution",
9753 default,
9754 skip_serializing_if = "Vec::is_empty"
9755 )]
9756 pub preferred_during_scheduling_ignored_during_execution:
9757 Vec<IoK8sApiCoreV1WeightedPodAffinityTerm>,
9758 #[doc = "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied."]
9759 #[serde(
9760 rename = "requiredDuringSchedulingIgnoredDuringExecution",
9761 default,
9762 skip_serializing_if = "Vec::is_empty"
9763 )]
9764 pub required_during_scheduling_ignored_during_execution: Vec<IoK8sApiCoreV1PodAffinityTerm>,
9765}
9766impl From<&IoK8sApiCoreV1PodAffinity> for IoK8sApiCoreV1PodAffinity {
9767 fn from(value: &IoK8sApiCoreV1PodAffinity) -> Self {
9768 value.clone()
9769 }
9770}
9771#[doc = "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running"]
9772#[derive(Clone, Debug, Deserialize, Serialize)]
9773pub struct IoK8sApiCoreV1PodAffinityTerm {
9774 #[doc = "A label query over a set of resources, in this case pods."]
9775 #[serde(
9776 rename = "labelSelector",
9777 default,
9778 skip_serializing_if = "Option::is_none"
9779 )]
9780 pub label_selector: Option<IoK8sApimachineryPkgApisMetaV1LabelSelector>,
9781 #[doc = "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces. This field is beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled."]
9782 #[serde(
9783 rename = "namespaceSelector",
9784 default,
9785 skip_serializing_if = "Option::is_none"
9786 )]
9787 pub namespace_selector: Option<IoK8sApimachineryPkgApisMetaV1LabelSelector>,
9788 #[doc = "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\""]
9789 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9790 pub namespaces: Vec<String>,
9791 #[doc = "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed."]
9792 #[serde(rename = "topologyKey")]
9793 pub topology_key: String,
9794}
9795impl From<&IoK8sApiCoreV1PodAffinityTerm> for IoK8sApiCoreV1PodAffinityTerm {
9796 fn from(value: &IoK8sApiCoreV1PodAffinityTerm) -> Self {
9797 value.clone()
9798 }
9799}
9800#[doc = "Pod anti affinity is a group of inter pod anti affinity scheduling rules."]
9801#[derive(Clone, Debug, Deserialize, Serialize)]
9802pub struct IoK8sApiCoreV1PodAntiAffinity {
9803 #[doc = "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred."]
9804 #[serde(
9805 rename = "preferredDuringSchedulingIgnoredDuringExecution",
9806 default,
9807 skip_serializing_if = "Vec::is_empty"
9808 )]
9809 pub preferred_during_scheduling_ignored_during_execution:
9810 Vec<IoK8sApiCoreV1WeightedPodAffinityTerm>,
9811 #[doc = "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied."]
9812 #[serde(
9813 rename = "requiredDuringSchedulingIgnoredDuringExecution",
9814 default,
9815 skip_serializing_if = "Vec::is_empty"
9816 )]
9817 pub required_during_scheduling_ignored_during_execution: Vec<IoK8sApiCoreV1PodAffinityTerm>,
9818}
9819impl From<&IoK8sApiCoreV1PodAntiAffinity> for IoK8sApiCoreV1PodAntiAffinity {
9820 fn from(value: &IoK8sApiCoreV1PodAntiAffinity) -> Self {
9821 value.clone()
9822 }
9823}
9824#[doc = "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy."]
9825#[derive(Clone, Debug, Deserialize, Serialize)]
9826pub struct IoK8sApiCoreV1PodDnsConfig {
9827 #[doc = "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed."]
9828 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9829 pub nameservers: Vec<String>,
9830 #[doc = "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy."]
9831 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9832 pub options: Vec<IoK8sApiCoreV1PodDnsConfigOption>,
9833 #[doc = "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed."]
9834 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9835 pub searches: Vec<String>,
9836}
9837impl From<&IoK8sApiCoreV1PodDnsConfig> for IoK8sApiCoreV1PodDnsConfig {
9838 fn from(value: &IoK8sApiCoreV1PodDnsConfig) -> Self {
9839 value.clone()
9840 }
9841}
9842#[doc = "PodDNSConfigOption defines DNS resolver options of a pod."]
9843#[derive(Clone, Debug, Deserialize, Serialize)]
9844pub struct IoK8sApiCoreV1PodDnsConfigOption {
9845 #[doc = "Required."]
9846 #[serde(default, skip_serializing_if = "Option::is_none")]
9847 pub name: Option<String>,
9848 #[serde(default, skip_serializing_if = "Option::is_none")]
9849 pub value: Option<String>,
9850}
9851impl From<&IoK8sApiCoreV1PodDnsConfigOption> for IoK8sApiCoreV1PodDnsConfigOption {
9852 fn from(value: &IoK8sApiCoreV1PodDnsConfigOption) -> Self {
9853 value.clone()
9854 }
9855}
9856#[doc = "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext."]
9857#[derive(Clone, Debug, Deserialize, Serialize)]
9858pub struct IoK8sApiCoreV1PodSecurityContext {
9859 #[doc = "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows."]
9860 #[serde(rename = "fsGroup", default, skip_serializing_if = "Option::is_none")]
9861 pub fs_group: Option<i64>,
9862 #[doc = "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows."]
9863 #[serde(
9864 rename = "fsGroupChangePolicy",
9865 default,
9866 skip_serializing_if = "Option::is_none"
9867 )]
9868 pub fs_group_change_policy: Option<String>,
9869 #[doc = "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows."]
9870 #[serde(
9871 rename = "runAsGroup",
9872 default,
9873 skip_serializing_if = "Option::is_none"
9874 )]
9875 pub run_as_group: Option<i64>,
9876 #[doc = "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence."]
9877 #[serde(
9878 rename = "runAsNonRoot",
9879 default,
9880 skip_serializing_if = "Option::is_none"
9881 )]
9882 pub run_as_non_root: Option<bool>,
9883 #[doc = "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows."]
9884 #[serde(rename = "runAsUser", default, skip_serializing_if = "Option::is_none")]
9885 pub run_as_user: Option<i64>,
9886 #[doc = "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows."]
9887 #[serde(
9888 rename = "seLinuxOptions",
9889 default,
9890 skip_serializing_if = "Option::is_none"
9891 )]
9892 pub se_linux_options: Option<IoK8sApiCoreV1SeLinuxOptions>,
9893 #[doc = "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows."]
9894 #[serde(
9895 rename = "seccompProfile",
9896 default,
9897 skip_serializing_if = "Option::is_none"
9898 )]
9899 pub seccomp_profile: Option<IoK8sApiCoreV1SeccompProfile>,
9900 #[doc = "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows."]
9901 #[serde(
9902 rename = "supplementalGroups",
9903 default,
9904 skip_serializing_if = "Vec::is_empty"
9905 )]
9906 pub supplemental_groups: Vec<i64>,
9907 #[doc = "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows."]
9908 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9909 pub sysctls: Vec<IoK8sApiCoreV1Sysctl>,
9910 #[doc = "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux."]
9911 #[serde(
9912 rename = "windowsOptions",
9913 default,
9914 skip_serializing_if = "Option::is_none"
9915 )]
9916 pub windows_options: Option<IoK8sApiCoreV1WindowsSecurityContextOptions>,
9917}
9918impl From<&IoK8sApiCoreV1PodSecurityContext> for IoK8sApiCoreV1PodSecurityContext {
9919 fn from(value: &IoK8sApiCoreV1PodSecurityContext) -> Self {
9920 value.clone()
9921 }
9922}
9923#[doc = "PortworxVolumeSource represents a Portworx volume resource."]
9924#[derive(Clone, Debug, Deserialize, Serialize)]
9925pub struct IoK8sApiCoreV1PortworxVolumeSource {
9926 #[doc = "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified."]
9927 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
9928 pub fs_type: Option<String>,
9929 #[doc = "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
9930 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
9931 pub read_only: Option<bool>,
9932 #[doc = "VolumeID uniquely identifies a Portworx volume"]
9933 #[serde(rename = "volumeID")]
9934 pub volume_id: String,
9935}
9936impl From<&IoK8sApiCoreV1PortworxVolumeSource> for IoK8sApiCoreV1PortworxVolumeSource {
9937 fn from(value: &IoK8sApiCoreV1PortworxVolumeSource) -> Self {
9938 value.clone()
9939 }
9940}
9941#[doc = "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op)."]
9942#[derive(Clone, Debug, Deserialize, Serialize)]
9943pub struct IoK8sApiCoreV1PreferredSchedulingTerm {
9944 #[doc = "A node selector term, associated with the corresponding weight."]
9945 pub preference: IoK8sApiCoreV1NodeSelectorTerm,
9946 #[doc = "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100."]
9947 pub weight: i64,
9948}
9949impl From<&IoK8sApiCoreV1PreferredSchedulingTerm> for IoK8sApiCoreV1PreferredSchedulingTerm {
9950 fn from(value: &IoK8sApiCoreV1PreferredSchedulingTerm) -> Self {
9951 value.clone()
9952 }
9953}
9954#[doc = "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic."]
9955#[derive(Clone, Debug, Deserialize, Serialize)]
9956pub struct IoK8sApiCoreV1Probe {
9957 #[doc = "Exec specifies the action to take."]
9958 #[serde(default, skip_serializing_if = "Option::is_none")]
9959 pub exec: Option<IoK8sApiCoreV1ExecAction>,
9960 #[doc = "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1."]
9961 #[serde(
9962 rename = "failureThreshold",
9963 default,
9964 skip_serializing_if = "Option::is_none"
9965 )]
9966 pub failure_threshold: Option<i64>,
9967 #[doc = "GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate."]
9968 #[serde(default, skip_serializing_if = "Option::is_none")]
9969 pub grpc: Option<IoK8sApiCoreV1GrpcAction>,
9970 #[doc = "HTTPGet specifies the http request to perform."]
9971 #[serde(rename = "httpGet", default, skip_serializing_if = "Option::is_none")]
9972 pub http_get: Option<IoK8sApiCoreV1HttpGetAction>,
9973 #[doc = "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
9974 #[serde(
9975 rename = "initialDelaySeconds",
9976 default,
9977 skip_serializing_if = "Option::is_none"
9978 )]
9979 pub initial_delay_seconds: Option<i64>,
9980 #[doc = "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1."]
9981 #[serde(
9982 rename = "periodSeconds",
9983 default,
9984 skip_serializing_if = "Option::is_none"
9985 )]
9986 pub period_seconds: Option<i64>,
9987 #[doc = "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1."]
9988 #[serde(
9989 rename = "successThreshold",
9990 default,
9991 skip_serializing_if = "Option::is_none"
9992 )]
9993 pub success_threshold: Option<i64>,
9994 #[doc = "TCPSocket specifies an action involving a TCP port."]
9995 #[serde(rename = "tcpSocket", default, skip_serializing_if = "Option::is_none")]
9996 pub tcp_socket: Option<IoK8sApiCoreV1TcpSocketAction>,
9997 #[doc = "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset."]
9998 #[serde(
9999 rename = "terminationGracePeriodSeconds",
10000 default,
10001 skip_serializing_if = "Option::is_none"
10002 )]
10003 pub termination_grace_period_seconds: Option<i64>,
10004 #[doc = "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"]
10005 #[serde(
10006 rename = "timeoutSeconds",
10007 default,
10008 skip_serializing_if = "Option::is_none"
10009 )]
10010 pub timeout_seconds: Option<i64>,
10011}
10012impl From<&IoK8sApiCoreV1Probe> for IoK8sApiCoreV1Probe {
10013 fn from(value: &IoK8sApiCoreV1Probe) -> Self {
10014 value.clone()
10015 }
10016}
10017#[doc = "Represents a projected volume source"]
10018#[derive(Clone, Debug, Deserialize, Serialize)]
10019pub struct IoK8sApiCoreV1ProjectedVolumeSource {
10020 #[doc = "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."]
10021 #[serde(
10022 rename = "defaultMode",
10023 default,
10024 skip_serializing_if = "Option::is_none"
10025 )]
10026 pub default_mode: Option<i64>,
10027 #[doc = "list of volume projections"]
10028 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10029 pub sources: Vec<IoK8sApiCoreV1VolumeProjection>,
10030}
10031impl From<&IoK8sApiCoreV1ProjectedVolumeSource> for IoK8sApiCoreV1ProjectedVolumeSource {
10032 fn from(value: &IoK8sApiCoreV1ProjectedVolumeSource) -> Self {
10033 value.clone()
10034 }
10035}
10036#[doc = "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling."]
10037#[derive(Clone, Debug, Deserialize, Serialize)]
10038pub struct IoK8sApiCoreV1QuobyteVolumeSource {
10039 #[doc = "Group to map volume access to Default is no group"]
10040 #[serde(default, skip_serializing_if = "Option::is_none")]
10041 pub group: Option<String>,
10042 #[doc = "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false."]
10043 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
10044 pub read_only: Option<bool>,
10045 #[doc = "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes"]
10046 pub registry: String,
10047 #[doc = "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin"]
10048 #[serde(default, skip_serializing_if = "Option::is_none")]
10049 pub tenant: Option<String>,
10050 #[doc = "User to map volume access to Defaults to serivceaccount user"]
10051 #[serde(default, skip_serializing_if = "Option::is_none")]
10052 pub user: Option<String>,
10053 #[doc = "Volume is a string that references an already created Quobyte volume by name."]
10054 pub volume: String,
10055}
10056impl From<&IoK8sApiCoreV1QuobyteVolumeSource> for IoK8sApiCoreV1QuobyteVolumeSource {
10057 fn from(value: &IoK8sApiCoreV1QuobyteVolumeSource) -> Self {
10058 value.clone()
10059 }
10060}
10061#[doc = "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling."]
10062#[derive(Clone, Debug, Deserialize, Serialize)]
10063pub struct IoK8sApiCoreV1RbdVolumeSource {
10064 #[doc = "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd"]
10065 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
10066 pub fs_type: Option<String>,
10067 #[doc = "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10068 pub image: String,
10069 #[doc = "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10070 #[serde(default, skip_serializing_if = "Option::is_none")]
10071 pub keyring: Option<String>,
10072 #[doc = "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10073 pub monitors: Vec<String>,
10074 #[doc = "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10075 #[serde(default, skip_serializing_if = "Option::is_none")]
10076 pub pool: Option<String>,
10077 #[doc = "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10078 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
10079 pub read_only: Option<bool>,
10080 #[doc = "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10081 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
10082 pub secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
10083 #[doc = "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it"]
10084 #[serde(default, skip_serializing_if = "Option::is_none")]
10085 pub user: Option<String>,
10086}
10087impl From<&IoK8sApiCoreV1RbdVolumeSource> for IoK8sApiCoreV1RbdVolumeSource {
10088 fn from(value: &IoK8sApiCoreV1RbdVolumeSource) -> Self {
10089 value.clone()
10090 }
10091}
10092#[doc = "ResourceFieldSelector represents container resources (cpu, memory) and their output format"]
10093#[derive(Clone, Debug, Deserialize, Serialize)]
10094pub struct IoK8sApiCoreV1ResourceFieldSelector {
10095 #[doc = "Container name: required for volumes, optional for env vars"]
10096 #[serde(
10097 rename = "containerName",
10098 default,
10099 skip_serializing_if = "Option::is_none"
10100 )]
10101 pub container_name: Option<String>,
10102 #[doc = "Specifies the output format of the exposed resources, defaults to \"1\""]
10103 #[serde(default, skip_serializing_if = "Option::is_none")]
10104 pub divisor: Option<IoK8sApimachineryPkgApiResourceQuantity>,
10105 #[doc = "Required: resource to select"]
10106 pub resource: String,
10107}
10108impl From<&IoK8sApiCoreV1ResourceFieldSelector> for IoK8sApiCoreV1ResourceFieldSelector {
10109 fn from(value: &IoK8sApiCoreV1ResourceFieldSelector) -> Self {
10110 value.clone()
10111 }
10112}
10113#[doc = "ResourceRequirements describes the compute resource requirements."]
10114#[derive(Clone, Debug, Deserialize, Serialize)]
10115pub struct IoK8sApiCoreV1ResourceRequirements {
10116 #[doc = "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"]
10117 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
10118 pub limits: std::collections::HashMap<String, IoK8sApimachineryPkgApiResourceQuantity>,
10119 #[doc = "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"]
10120 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
10121 pub requests: std::collections::HashMap<String, IoK8sApimachineryPkgApiResourceQuantity>,
10122}
10123impl From<&IoK8sApiCoreV1ResourceRequirements> for IoK8sApiCoreV1ResourceRequirements {
10124 fn from(value: &IoK8sApiCoreV1ResourceRequirements) -> Self {
10125 value.clone()
10126 }
10127}
10128#[doc = "ScaleIOVolumeSource represents a persistent ScaleIO volume"]
10129#[derive(Clone, Debug, Deserialize, Serialize)]
10130pub struct IoK8sApiCoreV1ScaleIoVolumeSource {
10131 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"."]
10132 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
10133 pub fs_type: Option<String>,
10134 #[doc = "The host address of the ScaleIO API Gateway."]
10135 pub gateway: String,
10136 #[doc = "The name of the ScaleIO Protection Domain for the configured storage."]
10137 #[serde(
10138 rename = "protectionDomain",
10139 default,
10140 skip_serializing_if = "Option::is_none"
10141 )]
10142 pub protection_domain: Option<String>,
10143 #[doc = "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
10144 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
10145 pub read_only: Option<bool>,
10146 #[doc = "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail."]
10147 #[serde(rename = "secretRef")]
10148 pub secret_ref: IoK8sApiCoreV1LocalObjectReference,
10149 #[doc = "Flag to enable/disable SSL communication with Gateway, default false"]
10150 #[serde(
10151 rename = "sslEnabled",
10152 default,
10153 skip_serializing_if = "Option::is_none"
10154 )]
10155 pub ssl_enabled: Option<bool>,
10156 #[doc = "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned."]
10157 #[serde(
10158 rename = "storageMode",
10159 default,
10160 skip_serializing_if = "Option::is_none"
10161 )]
10162 pub storage_mode: Option<String>,
10163 #[doc = "The ScaleIO Storage Pool associated with the protection domain."]
10164 #[serde(
10165 rename = "storagePool",
10166 default,
10167 skip_serializing_if = "Option::is_none"
10168 )]
10169 pub storage_pool: Option<String>,
10170 #[doc = "The name of the storage system as configured in ScaleIO."]
10171 pub system: String,
10172 #[doc = "The name of a volume already created in the ScaleIO system that is associated with this volume source."]
10173 #[serde(
10174 rename = "volumeName",
10175 default,
10176 skip_serializing_if = "Option::is_none"
10177 )]
10178 pub volume_name: Option<String>,
10179}
10180impl From<&IoK8sApiCoreV1ScaleIoVolumeSource> for IoK8sApiCoreV1ScaleIoVolumeSource {
10181 fn from(value: &IoK8sApiCoreV1ScaleIoVolumeSource) -> Self {
10182 value.clone()
10183 }
10184}
10185#[doc = "SELinuxOptions are the labels to be applied to the container"]
10186#[derive(Clone, Debug, Deserialize, Serialize)]
10187pub struct IoK8sApiCoreV1SeLinuxOptions {
10188 #[doc = "Level is SELinux level label that applies to the container."]
10189 #[serde(default, skip_serializing_if = "Option::is_none")]
10190 pub level: Option<String>,
10191 #[doc = "Role is a SELinux role label that applies to the container."]
10192 #[serde(default, skip_serializing_if = "Option::is_none")]
10193 pub role: Option<String>,
10194 #[doc = "Type is a SELinux type label that applies to the container."]
10195 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
10196 pub type_: Option<String>,
10197 #[doc = "User is a SELinux user label that applies to the container."]
10198 #[serde(default, skip_serializing_if = "Option::is_none")]
10199 pub user: Option<String>,
10200}
10201impl From<&IoK8sApiCoreV1SeLinuxOptions> for IoK8sApiCoreV1SeLinuxOptions {
10202 fn from(value: &IoK8sApiCoreV1SeLinuxOptions) -> Self {
10203 value.clone()
10204 }
10205}
10206#[doc = "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set."]
10207#[derive(Clone, Debug, Deserialize, Serialize)]
10208pub struct IoK8sApiCoreV1SeccompProfile {
10209 #[doc = "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \"Localhost\"."]
10210 #[serde(
10211 rename = "localhostProfile",
10212 default,
10213 skip_serializing_if = "Option::is_none"
10214 )]
10215 pub localhost_profile: Option<String>,
10216 #[doc = "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\n\nPossible enum values:\n - `\"Localhost\"` indicates a profile defined in a file on the node should be used. The file's location relative to <kubelet-root-dir>/seccomp.\n - `\"RuntimeDefault\"` represents the default container runtime seccomp profile.\n - `\"Unconfined\"` indicates no seccomp profile is applied (A.K.A. unconfined)."]
10217 #[serde(rename = "type")]
10218 pub type_: IoK8sApiCoreV1SeccompProfileType,
10219}
10220impl From<&IoK8sApiCoreV1SeccompProfile> for IoK8sApiCoreV1SeccompProfile {
10221 fn from(value: &IoK8sApiCoreV1SeccompProfile) -> Self {
10222 value.clone()
10223 }
10224}
10225#[doc = "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\n\nPossible enum values:\n - `\"Localhost\"` indicates a profile defined in a file on the node should be used. The file's location relative to <kubelet-root-dir>/seccomp.\n - `\"RuntimeDefault\"` represents the default container runtime seccomp profile.\n - `\"Unconfined\"` indicates no seccomp profile is applied (A.K.A. unconfined)."]
10226#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
10227pub enum IoK8sApiCoreV1SeccompProfileType {
10228 Localhost,
10229 RuntimeDefault,
10230 Unconfined,
10231}
10232impl From<&IoK8sApiCoreV1SeccompProfileType> for IoK8sApiCoreV1SeccompProfileType {
10233 fn from(value: &IoK8sApiCoreV1SeccompProfileType) -> Self {
10234 value.clone()
10235 }
10236}
10237impl ToString for IoK8sApiCoreV1SeccompProfileType {
10238 fn to_string(&self) -> String {
10239 match *self {
10240 Self::Localhost => "Localhost".to_string(),
10241 Self::RuntimeDefault => "RuntimeDefault".to_string(),
10242 Self::Unconfined => "Unconfined".to_string(),
10243 }
10244 }
10245}
10246impl std::str::FromStr for IoK8sApiCoreV1SeccompProfileType {
10247 type Err = &'static str;
10248 fn from_str(value: &str) -> Result<Self, &'static str> {
10249 match value {
10250 "Localhost" => Ok(Self::Localhost),
10251 "RuntimeDefault" => Ok(Self::RuntimeDefault),
10252 "Unconfined" => Ok(Self::Unconfined),
10253 _ => Err("invalid value"),
10254 }
10255 }
10256}
10257impl std::convert::TryFrom<&str> for IoK8sApiCoreV1SeccompProfileType {
10258 type Error = &'static str;
10259 fn try_from(value: &str) -> Result<Self, &'static str> {
10260 value.parse()
10261 }
10262}
10263impl std::convert::TryFrom<&String> for IoK8sApiCoreV1SeccompProfileType {
10264 type Error = &'static str;
10265 fn try_from(value: &String) -> Result<Self, &'static str> {
10266 value.parse()
10267 }
10268}
10269impl std::convert::TryFrom<String> for IoK8sApiCoreV1SeccompProfileType {
10270 type Error = &'static str;
10271 fn try_from(value: String) -> Result<Self, &'static str> {
10272 value.parse()
10273 }
10274}
10275#[doc = "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables."]
10276#[derive(Clone, Debug, Deserialize, Serialize)]
10277pub struct IoK8sApiCoreV1SecretEnvSource {
10278 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
10279 #[serde(default, skip_serializing_if = "Option::is_none")]
10280 pub name: Option<String>,
10281 #[doc = "Specify whether the Secret must be defined"]
10282 #[serde(default, skip_serializing_if = "Option::is_none")]
10283 pub optional: Option<bool>,
10284}
10285impl From<&IoK8sApiCoreV1SecretEnvSource> for IoK8sApiCoreV1SecretEnvSource {
10286 fn from(value: &IoK8sApiCoreV1SecretEnvSource) -> Self {
10287 value.clone()
10288 }
10289}
10290
10291pub use IoK8sApiCoreV1SecretKeySelectorBuilder as SecretKeySelectorBuilder;
10292pub use IoK8sApiCoreV1SecretKeySelectorBuilderError as SecretKeySelectorBuilderError;
10293
10294#[doc = "SecretKeySelector selects a key of a Secret."]
10295#[derive(Clone, Debug, Deserialize, Serialize, Builder, Default)]
10296pub struct IoK8sApiCoreV1SecretKeySelector {
10297 #[doc = "The key of the secret to select from. Must be a valid secret key."]
10298 pub key: String,
10299 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
10300 #[serde(default, skip_serializing_if = "Option::is_none")]
10301 pub name: Option<String>,
10302 #[doc = "Specify whether the Secret or its key must be defined"]
10303 #[serde(default, skip_serializing_if = "Option::is_none")]
10304 pub optional: Option<bool>,
10305}
10306impl From<&IoK8sApiCoreV1SecretKeySelector> for IoK8sApiCoreV1SecretKeySelector {
10307 fn from(value: &IoK8sApiCoreV1SecretKeySelector) -> Self {
10308 value.clone()
10309 }
10310}
10311#[doc = "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode."]
10312#[derive(Clone, Debug, Deserialize, Serialize)]
10313pub struct IoK8sApiCoreV1SecretProjection {
10314 #[doc = "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."]
10315 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10316 pub items: Vec<IoK8sApiCoreV1KeyToPath>,
10317 #[doc = "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
10318 #[serde(default, skip_serializing_if = "Option::is_none")]
10319 pub name: Option<String>,
10320 #[doc = "Specify whether the Secret or its key must be defined"]
10321 #[serde(default, skip_serializing_if = "Option::is_none")]
10322 pub optional: Option<bool>,
10323}
10324impl From<&IoK8sApiCoreV1SecretProjection> for IoK8sApiCoreV1SecretProjection {
10325 fn from(value: &IoK8sApiCoreV1SecretProjection) -> Self {
10326 value.clone()
10327 }
10328}
10329
10330pub use IoK8sApiCoreV1SecretVolumeSourceBuilder as SecretVolumeSourceBuilder;
10331pub use IoK8sApiCoreV1SecretVolumeSourceBuilderError as SecretVolumeSourceBuilderError;
10332
10333#[doc = "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling."]
10334#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
10335#[builder(default)]
10336pub struct IoK8sApiCoreV1SecretVolumeSource {
10337 #[doc = "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set."]
10338 #[serde(
10339 rename = "defaultMode",
10340 default,
10341 skip_serializing_if = "Option::is_none"
10342 )]
10343 pub default_mode: Option<i64>,
10344 #[doc = "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'."]
10345 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10346 pub items: Vec<IoK8sApiCoreV1KeyToPath>,
10347 #[doc = "Specify whether the Secret or its keys must be defined"]
10348 #[serde(default, skip_serializing_if = "Option::is_none")]
10349 pub optional: Option<bool>,
10350 #[doc = "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret"]
10351 #[serde(
10352 rename = "secretName",
10353 default,
10354 skip_serializing_if = "Option::is_none"
10355 )]
10356 pub secret_name: Option<String>,
10357}
10358impl From<&IoK8sApiCoreV1SecretVolumeSource> for IoK8sApiCoreV1SecretVolumeSource {
10359 fn from(value: &IoK8sApiCoreV1SecretVolumeSource) -> Self {
10360 value.clone()
10361 }
10362}
10363#[doc = "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence."]
10364#[derive(Clone, Debug, Deserialize, Serialize)]
10365pub struct IoK8sApiCoreV1SecurityContext {
10366 #[doc = "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows."]
10367 #[serde(
10368 rename = "allowPrivilegeEscalation",
10369 default,
10370 skip_serializing_if = "Option::is_none"
10371 )]
10372 pub allow_privilege_escalation: Option<bool>,
10373 #[doc = "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows."]
10374 #[serde(default, skip_serializing_if = "Option::is_none")]
10375 pub capabilities: Option<IoK8sApiCoreV1Capabilities>,
10376 #[doc = "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows."]
10377 #[serde(default, skip_serializing_if = "Option::is_none")]
10378 pub privileged: Option<bool>,
10379 #[doc = "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows."]
10380 #[serde(rename = "procMount", default, skip_serializing_if = "Option::is_none")]
10381 pub proc_mount: Option<String>,
10382 #[doc = "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows."]
10383 #[serde(
10384 rename = "readOnlyRootFilesystem",
10385 default,
10386 skip_serializing_if = "Option::is_none"
10387 )]
10388 pub read_only_root_filesystem: Option<bool>,
10389 #[doc = "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows."]
10390 #[serde(
10391 rename = "runAsGroup",
10392 default,
10393 skip_serializing_if = "Option::is_none"
10394 )]
10395 pub run_as_group: Option<i64>,
10396 #[doc = "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence."]
10397 #[serde(
10398 rename = "runAsNonRoot",
10399 default,
10400 skip_serializing_if = "Option::is_none"
10401 )]
10402 pub run_as_non_root: Option<bool>,
10403 #[doc = "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows."]
10404 #[serde(rename = "runAsUser", default, skip_serializing_if = "Option::is_none")]
10405 pub run_as_user: Option<i64>,
10406 #[doc = "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows."]
10407 #[serde(
10408 rename = "seLinuxOptions",
10409 default,
10410 skip_serializing_if = "Option::is_none"
10411 )]
10412 pub se_linux_options: Option<IoK8sApiCoreV1SeLinuxOptions>,
10413 #[doc = "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows."]
10414 #[serde(
10415 rename = "seccompProfile",
10416 default,
10417 skip_serializing_if = "Option::is_none"
10418 )]
10419 pub seccomp_profile: Option<IoK8sApiCoreV1SeccompProfile>,
10420 #[doc = "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux."]
10421 #[serde(
10422 rename = "windowsOptions",
10423 default,
10424 skip_serializing_if = "Option::is_none"
10425 )]
10426 pub windows_options: Option<IoK8sApiCoreV1WindowsSecurityContextOptions>,
10427}
10428impl From<&IoK8sApiCoreV1SecurityContext> for IoK8sApiCoreV1SecurityContext {
10429 fn from(value: &IoK8sApiCoreV1SecurityContext) -> Self {
10430 value.clone()
10431 }
10432}
10433#[doc = "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise)."]
10434#[derive(Clone, Debug, Deserialize, Serialize)]
10435pub struct IoK8sApiCoreV1ServiceAccountTokenProjection {
10436 #[doc = "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver."]
10437 #[serde(default, skip_serializing_if = "Option::is_none")]
10438 pub audience: Option<String>,
10439 #[doc = "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes."]
10440 #[serde(
10441 rename = "expirationSeconds",
10442 default,
10443 skip_serializing_if = "Option::is_none"
10444 )]
10445 pub expiration_seconds: Option<i64>,
10446 #[doc = "Path is the path relative to the mount point of the file to project the token into."]
10447 pub path: String,
10448}
10449impl From<&IoK8sApiCoreV1ServiceAccountTokenProjection>
10450 for IoK8sApiCoreV1ServiceAccountTokenProjection
10451{
10452 fn from(value: &IoK8sApiCoreV1ServiceAccountTokenProjection) -> Self {
10453 value.clone()
10454 }
10455}
10456#[doc = "ServicePort contains information on service's port."]
10457#[derive(Clone, Debug, Deserialize, Serialize)]
10458pub struct IoK8sApiCoreV1ServicePort {
10459 #[doc = "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol."]
10460 #[serde(
10461 rename = "appProtocol",
10462 default,
10463 skip_serializing_if = "Option::is_none"
10464 )]
10465 pub app_protocol: Option<String>,
10466 #[doc = "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service."]
10467 #[serde(default, skip_serializing_if = "Option::is_none")]
10468 pub name: Option<String>,
10469 #[doc = "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport"]
10470 #[serde(rename = "nodePort", default, skip_serializing_if = "Option::is_none")]
10471 pub node_port: Option<i64>,
10472 #[doc = "The port that will be exposed by this service."]
10473 pub port: i64,
10474 #[doc = "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol."]
10475 #[serde(default, skip_serializing_if = "Option::is_none")]
10476 pub protocol: Option<IoK8sApiCoreV1ServicePortProtocol>,
10477 #[doc = "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service"]
10478 #[serde(
10479 rename = "targetPort",
10480 default,
10481 skip_serializing_if = "Option::is_none"
10482 )]
10483 pub target_port: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
10484}
10485impl From<&IoK8sApiCoreV1ServicePort> for IoK8sApiCoreV1ServicePort {
10486 fn from(value: &IoK8sApiCoreV1ServicePort) -> Self {
10487 value.clone()
10488 }
10489}
10490#[doc = "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol."]
10491#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
10492pub enum IoK8sApiCoreV1ServicePortProtocol {
10493 #[serde(rename = "SCTP")]
10494 Sctp,
10495 #[serde(rename = "TCP")]
10496 Tcp,
10497 #[serde(rename = "UDP")]
10498 Udp,
10499}
10500impl From<&IoK8sApiCoreV1ServicePortProtocol> for IoK8sApiCoreV1ServicePortProtocol {
10501 fn from(value: &IoK8sApiCoreV1ServicePortProtocol) -> Self {
10502 value.clone()
10503 }
10504}
10505impl ToString for IoK8sApiCoreV1ServicePortProtocol {
10506 fn to_string(&self) -> String {
10507 match *self {
10508 Self::Sctp => "SCTP".to_string(),
10509 Self::Tcp => "TCP".to_string(),
10510 Self::Udp => "UDP".to_string(),
10511 }
10512 }
10513}
10514impl std::str::FromStr for IoK8sApiCoreV1ServicePortProtocol {
10515 type Err = &'static str;
10516 fn from_str(value: &str) -> Result<Self, &'static str> {
10517 match value {
10518 "SCTP" => Ok(Self::Sctp),
10519 "TCP" => Ok(Self::Tcp),
10520 "UDP" => Ok(Self::Udp),
10521 _ => Err("invalid value"),
10522 }
10523 }
10524}
10525impl std::convert::TryFrom<&str> for IoK8sApiCoreV1ServicePortProtocol {
10526 type Error = &'static str;
10527 fn try_from(value: &str) -> Result<Self, &'static str> {
10528 value.parse()
10529 }
10530}
10531impl std::convert::TryFrom<&String> for IoK8sApiCoreV1ServicePortProtocol {
10532 type Error = &'static str;
10533 fn try_from(value: &String) -> Result<Self, &'static str> {
10534 value.parse()
10535 }
10536}
10537impl std::convert::TryFrom<String> for IoK8sApiCoreV1ServicePortProtocol {
10538 type Error = &'static str;
10539 fn try_from(value: String) -> Result<Self, &'static str> {
10540 value.parse()
10541 }
10542}
10543#[doc = "Represents a StorageOS persistent volume resource."]
10544#[derive(Clone, Debug, Deserialize, Serialize)]
10545pub struct IoK8sApiCoreV1StorageOsVolumeSource {
10546 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."]
10547 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
10548 pub fs_type: Option<String>,
10549 #[doc = "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."]
10550 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
10551 pub read_only: Option<bool>,
10552 #[doc = "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted."]
10553 #[serde(rename = "secretRef", default, skip_serializing_if = "Option::is_none")]
10554 pub secret_ref: Option<IoK8sApiCoreV1LocalObjectReference>,
10555 #[doc = "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace."]
10556 #[serde(
10557 rename = "volumeName",
10558 default,
10559 skip_serializing_if = "Option::is_none"
10560 )]
10561 pub volume_name: Option<String>,
10562 #[doc = "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created."]
10563 #[serde(
10564 rename = "volumeNamespace",
10565 default,
10566 skip_serializing_if = "Option::is_none"
10567 )]
10568 pub volume_namespace: Option<String>,
10569}
10570impl From<&IoK8sApiCoreV1StorageOsVolumeSource> for IoK8sApiCoreV1StorageOsVolumeSource {
10571 fn from(value: &IoK8sApiCoreV1StorageOsVolumeSource) -> Self {
10572 value.clone()
10573 }
10574}
10575#[doc = "Sysctl defines a kernel parameter to be set"]
10576#[derive(Clone, Debug, Deserialize, Serialize)]
10577pub struct IoK8sApiCoreV1Sysctl {
10578 #[doc = "Name of a property to set"]
10579 pub name: String,
10580 #[doc = "Value of a property to set"]
10581 pub value: String,
10582}
10583impl From<&IoK8sApiCoreV1Sysctl> for IoK8sApiCoreV1Sysctl {
10584 fn from(value: &IoK8sApiCoreV1Sysctl) -> Self {
10585 value.clone()
10586 }
10587}
10588#[doc = "TCPSocketAction describes an action based on opening a socket"]
10589#[derive(Clone, Debug, Deserialize, Serialize)]
10590pub struct IoK8sApiCoreV1TcpSocketAction {
10591 #[doc = "Optional: Host name to connect to, defaults to the pod IP."]
10592 #[serde(default, skip_serializing_if = "Option::is_none")]
10593 pub host: Option<String>,
10594 #[doc = "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME."]
10595 pub port: IoK8sApimachineryPkgUtilIntstrIntOrString,
10596}
10597impl From<&IoK8sApiCoreV1TcpSocketAction> for IoK8sApiCoreV1TcpSocketAction {
10598 fn from(value: &IoK8sApiCoreV1TcpSocketAction) -> Self {
10599 value.clone()
10600 }
10601}
10602#[doc = "The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>."]
10603#[derive(Clone, Debug, Deserialize, Serialize)]
10604pub struct IoK8sApiCoreV1Toleration {
10605 #[doc = "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler."]
10606 #[serde(default, skip_serializing_if = "Option::is_none")]
10607 pub effect: Option<IoK8sApiCoreV1TolerationEffect>,
10608 #[doc = "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys."]
10609 #[serde(default, skip_serializing_if = "Option::is_none")]
10610 pub key: Option<String>,
10611 #[doc = "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\n\nPossible enum values:\n - `\"Equal\"`\n - `\"Exists\"`"]
10612 #[serde(default, skip_serializing_if = "Option::is_none")]
10613 pub operator: Option<IoK8sApiCoreV1TolerationOperator>,
10614 #[doc = "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system."]
10615 #[serde(
10616 rename = "tolerationSeconds",
10617 default,
10618 skip_serializing_if = "Option::is_none"
10619 )]
10620 pub toleration_seconds: Option<i64>,
10621 #[doc = "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string."]
10622 #[serde(default, skip_serializing_if = "Option::is_none")]
10623 pub value: Option<String>,
10624}
10625impl From<&IoK8sApiCoreV1Toleration> for IoK8sApiCoreV1Toleration {
10626 fn from(value: &IoK8sApiCoreV1Toleration) -> Self {
10627 value.clone()
10628 }
10629}
10630#[doc = "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler."]
10631#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
10632pub enum IoK8sApiCoreV1TolerationEffect {
10633 NoExecute,
10634 NoSchedule,
10635 PreferNoSchedule,
10636}
10637impl From<&IoK8sApiCoreV1TolerationEffect> for IoK8sApiCoreV1TolerationEffect {
10638 fn from(value: &IoK8sApiCoreV1TolerationEffect) -> Self {
10639 value.clone()
10640 }
10641}
10642impl ToString for IoK8sApiCoreV1TolerationEffect {
10643 fn to_string(&self) -> String {
10644 match *self {
10645 Self::NoExecute => "NoExecute".to_string(),
10646 Self::NoSchedule => "NoSchedule".to_string(),
10647 Self::PreferNoSchedule => "PreferNoSchedule".to_string(),
10648 }
10649 }
10650}
10651impl std::str::FromStr for IoK8sApiCoreV1TolerationEffect {
10652 type Err = &'static str;
10653 fn from_str(value: &str) -> Result<Self, &'static str> {
10654 match value {
10655 "NoExecute" => Ok(Self::NoExecute),
10656 "NoSchedule" => Ok(Self::NoSchedule),
10657 "PreferNoSchedule" => Ok(Self::PreferNoSchedule),
10658 _ => Err("invalid value"),
10659 }
10660 }
10661}
10662impl std::convert::TryFrom<&str> for IoK8sApiCoreV1TolerationEffect {
10663 type Error = &'static str;
10664 fn try_from(value: &str) -> Result<Self, &'static str> {
10665 value.parse()
10666 }
10667}
10668impl std::convert::TryFrom<&String> for IoK8sApiCoreV1TolerationEffect {
10669 type Error = &'static str;
10670 fn try_from(value: &String) -> Result<Self, &'static str> {
10671 value.parse()
10672 }
10673}
10674impl std::convert::TryFrom<String> for IoK8sApiCoreV1TolerationEffect {
10675 type Error = &'static str;
10676 fn try_from(value: String) -> Result<Self, &'static str> {
10677 value.parse()
10678 }
10679}
10680#[doc = "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\n\nPossible enum values:\n - `\"Equal\"`\n - `\"Exists\"`"]
10681#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
10682pub enum IoK8sApiCoreV1TolerationOperator {
10683 Equal,
10684 Exists,
10685}
10686impl From<&IoK8sApiCoreV1TolerationOperator> for IoK8sApiCoreV1TolerationOperator {
10687 fn from(value: &IoK8sApiCoreV1TolerationOperator) -> Self {
10688 value.clone()
10689 }
10690}
10691impl ToString for IoK8sApiCoreV1TolerationOperator {
10692 fn to_string(&self) -> String {
10693 match *self {
10694 Self::Equal => "Equal".to_string(),
10695 Self::Exists => "Exists".to_string(),
10696 }
10697 }
10698}
10699impl std::str::FromStr for IoK8sApiCoreV1TolerationOperator {
10700 type Err = &'static str;
10701 fn from_str(value: &str) -> Result<Self, &'static str> {
10702 match value {
10703 "Equal" => Ok(Self::Equal),
10704 "Exists" => Ok(Self::Exists),
10705 _ => Err("invalid value"),
10706 }
10707 }
10708}
10709impl std::convert::TryFrom<&str> for IoK8sApiCoreV1TolerationOperator {
10710 type Error = &'static str;
10711 fn try_from(value: &str) -> Result<Self, &'static str> {
10712 value.parse()
10713 }
10714}
10715impl std::convert::TryFrom<&String> for IoK8sApiCoreV1TolerationOperator {
10716 type Error = &'static str;
10717 fn try_from(value: &String) -> Result<Self, &'static str> {
10718 value.parse()
10719 }
10720}
10721impl std::convert::TryFrom<String> for IoK8sApiCoreV1TolerationOperator {
10722 type Error = &'static str;
10723 fn try_from(value: String) -> Result<Self, &'static str> {
10724 value.parse()
10725 }
10726}
10727#[doc = "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace."]
10728#[derive(Clone, Debug, Deserialize, Serialize)]
10729pub struct IoK8sApiCoreV1TypedLocalObjectReference {
10730 #[doc = "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required."]
10731 #[serde(rename = "apiGroup", default, skip_serializing_if = "Option::is_none")]
10732 pub api_group: Option<String>,
10733 #[doc = "Kind is the type of resource being referenced"]
10734 pub kind: String,
10735 #[doc = "Name is the name of resource being referenced"]
10736 pub name: String,
10737}
10738impl From<&IoK8sApiCoreV1TypedLocalObjectReference> for IoK8sApiCoreV1TypedLocalObjectReference {
10739 fn from(value: &IoK8sApiCoreV1TypedLocalObjectReference) -> Self {
10740 value.clone()
10741 }
10742}
10743
10744pub use IoK8sApiCoreV1VolumeBuilder as VolumeBuilder;
10745pub use IoK8sApiCoreV1VolumeBuilderError as VolumeBuilderError;
10746
10747#[doc = "Volume represents a named volume in a pod that may be accessed by any container in the pod."]
10748#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
10749#[builder(default)]
10750pub struct IoK8sApiCoreV1Volume {
10751 #[doc = "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"]
10752 #[serde(
10753 rename = "awsElasticBlockStore",
10754 default,
10755 skip_serializing_if = "Option::is_none"
10756 )]
10757 pub aws_elastic_block_store: Option<IoK8sApiCoreV1AwsElasticBlockStoreVolumeSource>,
10758 #[doc = "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod."]
10759 #[serde(rename = "azureDisk", default, skip_serializing_if = "Option::is_none")]
10760 pub azure_disk: Option<IoK8sApiCoreV1AzureDiskVolumeSource>,
10761 #[doc = "AzureFile represents an Azure File Service mount on the host and bind mount to the pod."]
10762 #[serde(rename = "azureFile", default, skip_serializing_if = "Option::is_none")]
10763 pub azure_file: Option<IoK8sApiCoreV1AzureFileVolumeSource>,
10764 #[doc = "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime"]
10765 #[serde(default, skip_serializing_if = "Option::is_none")]
10766 pub cephfs: Option<IoK8sApiCoreV1CephFsVolumeSource>,
10767 #[doc = "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md"]
10768 #[serde(default, skip_serializing_if = "Option::is_none")]
10769 pub cinder: Option<IoK8sApiCoreV1CinderVolumeSource>,
10770 #[doc = "ConfigMap represents a configMap that should populate this volume"]
10771 #[serde(rename = "configMap", default, skip_serializing_if = "Option::is_none")]
10772 pub config_map: Option<IoK8sApiCoreV1ConfigMapVolumeSource>,
10773 #[doc = "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)."]
10774 #[serde(default, skip_serializing_if = "Option::is_none")]
10775 pub csi: Option<IoK8sApiCoreV1CsiVolumeSource>,
10776 #[doc = "DownwardAPI represents downward API about the pod that should populate this volume"]
10777 #[serde(
10778 rename = "downwardAPI",
10779 default,
10780 skip_serializing_if = "Option::is_none"
10781 )]
10782 pub downward_api: Option<IoK8sApiCoreV1DownwardApiVolumeSource>,
10783 #[doc = "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"]
10784 #[serde(rename = "emptyDir", default, skip_serializing_if = "Option::is_none")]
10785 pub empty_dir: Option<IoK8sApiCoreV1EmptyDirVolumeSource>,
10786 #[doc = "Ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time."]
10787 #[serde(default, skip_serializing_if = "Option::is_none")]
10788 pub ephemeral: Option<IoK8sApiCoreV1EphemeralVolumeSource>,
10789 #[doc = "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod."]
10790 #[serde(default, skip_serializing_if = "Option::is_none")]
10791 pub fc: Option<IoK8sApiCoreV1FcVolumeSource>,
10792 #[doc = "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin."]
10793 #[serde(
10794 rename = "flexVolume",
10795 default,
10796 skip_serializing_if = "Option::is_none"
10797 )]
10798 pub flex_volume: Option<IoK8sApiCoreV1FlexVolumeSource>,
10799 #[doc = "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running"]
10800 #[serde(default, skip_serializing_if = "Option::is_none")]
10801 pub flocker: Option<IoK8sApiCoreV1FlockerVolumeSource>,
10802 #[doc = "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"]
10803 #[serde(
10804 rename = "gcePersistentDisk",
10805 default,
10806 skip_serializing_if = "Option::is_none"
10807 )]
10808 pub gce_persistent_disk: Option<IoK8sApiCoreV1GcePersistentDiskVolumeSource>,
10809 #[doc = "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container."]
10810 #[serde(rename = "gitRepo", default, skip_serializing_if = "Option::is_none")]
10811 pub git_repo: Option<IoK8sApiCoreV1GitRepoVolumeSource>,
10812 #[doc = "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md"]
10813 #[serde(default, skip_serializing_if = "Option::is_none")]
10814 pub glusterfs: Option<IoK8sApiCoreV1GlusterfsVolumeSource>,
10815 #[doc = "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"]
10816 #[serde(rename = "hostPath", default, skip_serializing_if = "Option::is_none")]
10817 pub host_path: Option<IoK8sApiCoreV1HostPathVolumeSource>,
10818 #[doc = "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md"]
10819 #[serde(default, skip_serializing_if = "Option::is_none")]
10820 pub iscsi: Option<IoK8sApiCoreV1IscsiVolumeSource>,
10821 #[doc = "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"]
10822 pub name: String,
10823 #[doc = "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"]
10824 #[serde(default, skip_serializing_if = "Option::is_none")]
10825 pub nfs: Option<IoK8sApiCoreV1NfsVolumeSource>,
10826 #[doc = "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"]
10827 #[serde(
10828 rename = "persistentVolumeClaim",
10829 default,
10830 skip_serializing_if = "Option::is_none"
10831 )]
10832 pub persistent_volume_claim: Option<IoK8sApiCoreV1PersistentVolumeClaimVolumeSource>,
10833 #[doc = "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"]
10834 #[serde(
10835 rename = "photonPersistentDisk",
10836 default,
10837 skip_serializing_if = "Option::is_none"
10838 )]
10839 pub photon_persistent_disk: Option<IoK8sApiCoreV1PhotonPersistentDiskVolumeSource>,
10840 #[doc = "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine"]
10841 #[serde(
10842 rename = "portworxVolume",
10843 default,
10844 skip_serializing_if = "Option::is_none"
10845 )]
10846 pub portworx_volume: Option<IoK8sApiCoreV1PortworxVolumeSource>,
10847 #[doc = "Items for all in one resources secrets, configmaps, and downward API"]
10848 #[serde(default, skip_serializing_if = "Option::is_none")]
10849 pub projected: Option<IoK8sApiCoreV1ProjectedVolumeSource>,
10850 #[doc = "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime"]
10851 #[serde(default, skip_serializing_if = "Option::is_none")]
10852 pub quobyte: Option<IoK8sApiCoreV1QuobyteVolumeSource>,
10853 #[doc = "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md"]
10854 #[serde(default, skip_serializing_if = "Option::is_none")]
10855 pub rbd: Option<IoK8sApiCoreV1RbdVolumeSource>,
10856 #[doc = "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes."]
10857 #[serde(rename = "scaleIO", default, skip_serializing_if = "Option::is_none")]
10858 pub scale_io: Option<IoK8sApiCoreV1ScaleIoVolumeSource>,
10859 #[doc = "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret"]
10860 #[serde(default, skip_serializing_if = "Option::is_none")]
10861 pub secret: Option<IoK8sApiCoreV1SecretVolumeSource>,
10862 #[doc = "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes."]
10863 #[serde(default, skip_serializing_if = "Option::is_none")]
10864 pub storageos: Option<IoK8sApiCoreV1StorageOsVolumeSource>,
10865 #[doc = "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine"]
10866 #[serde(
10867 rename = "vsphereVolume",
10868 default,
10869 skip_serializing_if = "Option::is_none"
10870 )]
10871 pub vsphere_volume: Option<IoK8sApiCoreV1VsphereVirtualDiskVolumeSource>,
10872}
10873impl From<&IoK8sApiCoreV1Volume> for IoK8sApiCoreV1Volume {
10874 fn from(value: &IoK8sApiCoreV1Volume) -> Self {
10875 value.clone()
10876 }
10877}
10878#[doc = "volumeDevice describes a mapping of a raw block device within a container."]
10879#[derive(Clone, Debug, Deserialize, Serialize)]
10880pub struct IoK8sApiCoreV1VolumeDevice {
10881 #[doc = "devicePath is the path inside of the container that the device will be mapped to."]
10882 #[serde(rename = "devicePath")]
10883 pub device_path: String,
10884 #[doc = "name must match the name of a persistentVolumeClaim in the pod"]
10885 pub name: String,
10886}
10887impl From<&IoK8sApiCoreV1VolumeDevice> for IoK8sApiCoreV1VolumeDevice {
10888 fn from(value: &IoK8sApiCoreV1VolumeDevice) -> Self {
10889 value.clone()
10890 }
10891}
10892
10893pub use IoK8sApiCoreV1VolumeMountBuilder as VolumeMountBuilder;
10894pub use IoK8sApiCoreV1VolumeMountBuilderError as VolumeMountBuilderError;
10895
10896#[doc = "VolumeMount describes a mounting of a Volume within a container."]
10897#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
10898#[builder(default)]
10899pub struct IoK8sApiCoreV1VolumeMount {
10900 #[doc = "Path within the container at which the volume should be mounted. Must not contain ':'."]
10901 #[serde(rename = "mountPath")]
10902 pub mount_path: String,
10903 #[doc = "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10."]
10904 #[serde(
10905 rename = "mountPropagation",
10906 default,
10907 skip_serializing_if = "Option::is_none"
10908 )]
10909 pub mount_propagation: Option<String>,
10910 #[doc = "This must match the Name of a Volume."]
10911 pub name: String,
10912 #[doc = "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false."]
10913 #[serde(rename = "readOnly", default, skip_serializing_if = "Option::is_none")]
10914 pub read_only: Option<bool>,
10915 #[doc = "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)."]
10916 #[serde(rename = "subPath", default, skip_serializing_if = "Option::is_none")]
10917 pub sub_path: Option<String>,
10918 #[doc = "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive."]
10919 #[serde(
10920 rename = "subPathExpr",
10921 default,
10922 skip_serializing_if = "Option::is_none"
10923 )]
10924 pub sub_path_expr: Option<String>,
10925}
10926impl From<&IoK8sApiCoreV1VolumeMount> for IoK8sApiCoreV1VolumeMount {
10927 fn from(value: &IoK8sApiCoreV1VolumeMount) -> Self {
10928 value.clone()
10929 }
10930}
10931#[doc = "Projection that may be projected along with other supported volume types"]
10932#[derive(Clone, Debug, Deserialize, Serialize)]
10933pub struct IoK8sApiCoreV1VolumeProjection {
10934 #[doc = "information about the configMap data to project"]
10935 #[serde(rename = "configMap", default, skip_serializing_if = "Option::is_none")]
10936 pub config_map: Option<IoK8sApiCoreV1ConfigMapProjection>,
10937 #[doc = "information about the downwardAPI data to project"]
10938 #[serde(
10939 rename = "downwardAPI",
10940 default,
10941 skip_serializing_if = "Option::is_none"
10942 )]
10943 pub downward_api: Option<IoK8sApiCoreV1DownwardApiProjection>,
10944 #[doc = "information about the secret data to project"]
10945 #[serde(default, skip_serializing_if = "Option::is_none")]
10946 pub secret: Option<IoK8sApiCoreV1SecretProjection>,
10947 #[doc = "information about the serviceAccountToken data to project"]
10948 #[serde(
10949 rename = "serviceAccountToken",
10950 default,
10951 skip_serializing_if = "Option::is_none"
10952 )]
10953 pub service_account_token: Option<IoK8sApiCoreV1ServiceAccountTokenProjection>,
10954}
10955impl From<&IoK8sApiCoreV1VolumeProjection> for IoK8sApiCoreV1VolumeProjection {
10956 fn from(value: &IoK8sApiCoreV1VolumeProjection) -> Self {
10957 value.clone()
10958 }
10959}
10960#[doc = "Represents a vSphere volume resource."]
10961#[derive(Clone, Debug, Deserialize, Serialize)]
10962pub struct IoK8sApiCoreV1VsphereVirtualDiskVolumeSource {
10963 #[doc = "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."]
10964 #[serde(rename = "fsType", default, skip_serializing_if = "Option::is_none")]
10965 pub fs_type: Option<String>,
10966 #[doc = "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName."]
10967 #[serde(
10968 rename = "storagePolicyID",
10969 default,
10970 skip_serializing_if = "Option::is_none"
10971 )]
10972 pub storage_policy_id: Option<String>,
10973 #[doc = "Storage Policy Based Management (SPBM) profile name."]
10974 #[serde(
10975 rename = "storagePolicyName",
10976 default,
10977 skip_serializing_if = "Option::is_none"
10978 )]
10979 pub storage_policy_name: Option<String>,
10980 #[doc = "Path that identifies vSphere volume vmdk"]
10981 #[serde(rename = "volumePath")]
10982 pub volume_path: String,
10983}
10984impl From<&IoK8sApiCoreV1VsphereVirtualDiskVolumeSource>
10985 for IoK8sApiCoreV1VsphereVirtualDiskVolumeSource
10986{
10987 fn from(value: &IoK8sApiCoreV1VsphereVirtualDiskVolumeSource) -> Self {
10988 value.clone()
10989 }
10990}
10991#[doc = "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)"]
10992#[derive(Clone, Debug, Deserialize, Serialize)]
10993pub struct IoK8sApiCoreV1WeightedPodAffinityTerm {
10994 #[doc = "Required. A pod affinity term, associated with the corresponding weight."]
10995 #[serde(rename = "podAffinityTerm")]
10996 pub pod_affinity_term: IoK8sApiCoreV1PodAffinityTerm,
10997 #[doc = "weight associated with matching the corresponding podAffinityTerm, in the range 1-100."]
10998 pub weight: i64,
10999}
11000impl From<&IoK8sApiCoreV1WeightedPodAffinityTerm> for IoK8sApiCoreV1WeightedPodAffinityTerm {
11001 fn from(value: &IoK8sApiCoreV1WeightedPodAffinityTerm) -> Self {
11002 value.clone()
11003 }
11004}
11005#[doc = "WindowsSecurityContextOptions contain Windows-specific options and credentials."]
11006#[derive(Clone, Debug, Deserialize, Serialize)]
11007pub struct IoK8sApiCoreV1WindowsSecurityContextOptions {
11008 #[doc = "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field."]
11009 #[serde(
11010 rename = "gmsaCredentialSpec",
11011 default,
11012 skip_serializing_if = "Option::is_none"
11013 )]
11014 pub gmsa_credential_spec: Option<String>,
11015 #[doc = "GMSACredentialSpecName is the name of the GMSA credential spec to use."]
11016 #[serde(
11017 rename = "gmsaCredentialSpecName",
11018 default,
11019 skip_serializing_if = "Option::is_none"
11020 )]
11021 pub gmsa_credential_spec_name: Option<String>,
11022 #[doc = "HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true."]
11023 #[serde(
11024 rename = "hostProcess",
11025 default,
11026 skip_serializing_if = "Option::is_none"
11027 )]
11028 pub host_process: Option<bool>,
11029 #[doc = "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence."]
11030 #[serde(
11031 rename = "runAsUserName",
11032 default,
11033 skip_serializing_if = "Option::is_none"
11034 )]
11035 pub run_as_user_name: Option<String>,
11036}
11037impl From<&IoK8sApiCoreV1WindowsSecurityContextOptions>
11038 for IoK8sApiCoreV1WindowsSecurityContextOptions
11039{
11040 fn from(value: &IoK8sApiCoreV1WindowsSecurityContextOptions) -> Self {
11041 value.clone()
11042 }
11043}
11044#[doc = "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget."]
11045#[derive(Clone, Debug, Deserialize, Serialize)]
11046pub struct IoK8sApiPolicyV1PodDisruptionBudgetSpec {
11047 #[doc = "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"."]
11048 #[serde(
11049 rename = "maxUnavailable",
11050 default,
11051 skip_serializing_if = "Option::is_none"
11052 )]
11053 pub max_unavailable: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
11054 #[doc = "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"."]
11055 #[serde(
11056 rename = "minAvailable",
11057 default,
11058 skip_serializing_if = "Option::is_none"
11059 )]
11060 pub min_available: Option<IoK8sApimachineryPkgUtilIntstrIntOrString>,
11061 #[doc = "Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace."]
11062 #[serde(default, skip_serializing_if = "Option::is_none")]
11063 pub selector: Option<IoK8sApimachineryPkgApisMetaV1LabelSelector>,
11064}
11065impl From<&IoK8sApiPolicyV1PodDisruptionBudgetSpec> for IoK8sApiPolicyV1PodDisruptionBudgetSpec {
11066 fn from(value: &IoK8sApiPolicyV1PodDisruptionBudgetSpec) -> Self {
11067 value.clone()
11068 }
11069}
11070#[doc = "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n<quantity> ::= <signedNumber><suffix>\n (Note that <suffix> may be empty, from the \"\" case in <decimalSI>.)\n<digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= \"+\" | \"-\" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n<decimalSI> ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n<decimalExponent> ::= \"e\" <signedNumber> | \"E\" <signedNumber>\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation."]
11071#[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
11072pub struct IoK8sApimachineryPkgApiResourceQuantity(pub String);
11073impl std::ops::Deref for IoK8sApimachineryPkgApiResourceQuantity {
11074 type Target = String;
11075 fn deref(&self) -> &String {
11076 &self.0
11077 }
11078}
11079impl From<IoK8sApimachineryPkgApiResourceQuantity> for String {
11080 fn from(value: IoK8sApimachineryPkgApiResourceQuantity) -> Self {
11081 value.0
11082 }
11083}
11084impl From<&IoK8sApimachineryPkgApiResourceQuantity> for IoK8sApimachineryPkgApiResourceQuantity {
11085 fn from(value: &IoK8sApimachineryPkgApiResourceQuantity) -> Self {
11086 value.clone()
11087 }
11088}
11089impl From<String> for IoK8sApimachineryPkgApiResourceQuantity {
11090 fn from(value: String) -> Self {
11091 Self(value)
11092 }
11093}
11094impl std::str::FromStr for IoK8sApimachineryPkgApiResourceQuantity {
11095 type Err = std::convert::Infallible;
11096 fn from_str(value: &str) -> Result<Self, Self::Err> {
11097 Ok(Self(value.to_string()))
11098 }
11099}
11100impl ToString for IoK8sApimachineryPkgApiResourceQuantity {
11101 fn to_string(&self) -> String {
11102 self.0.to_string()
11103 }
11104}
11105#[doc = "CreateOptions may be provided when creating an API object."]
11106#[derive(Clone, Debug, Deserialize, Serialize)]
11107pub struct IoK8sApimachineryPkgApisMetaV1CreateOptions {
11108 #[serde(rename = "dryRun", default, skip_serializing_if = "Vec::is_empty")]
11109 pub dry_run: Vec<String>,
11110 #[serde(
11111 rename = "fieldManager",
11112 default,
11113 skip_serializing_if = "Option::is_none"
11114 )]
11115 pub field_manager: Option<String>,
11116 #[serde(
11117 rename = "fieldValidation",
11118 default,
11119 skip_serializing_if = "Option::is_none"
11120 )]
11121 pub field_validation: Option<String>,
11122}
11123impl From<&IoK8sApimachineryPkgApisMetaV1CreateOptions>
11124 for IoK8sApimachineryPkgApisMetaV1CreateOptions
11125{
11126 fn from(value: &IoK8sApimachineryPkgApisMetaV1CreateOptions) -> Self {
11127 value.clone()
11128 }
11129}
11130#[doc = "Duration is a wrapper around time.Duration which supports correct\nmarshaling to YAML and JSON. In particular, it marshals into strings, which\ncan be used as map keys in json."]
11131#[derive(Clone, Debug, Deserialize, Serialize)]
11132pub struct IoK8sApimachineryPkgApisMetaV1Duration {
11133 #[serde(default, skip_serializing_if = "Option::is_none")]
11134 pub duration: Option<String>,
11135}
11136impl From<&IoK8sApimachineryPkgApisMetaV1Duration> for IoK8sApimachineryPkgApisMetaV1Duration {
11137 fn from(value: &IoK8sApimachineryPkgApisMetaV1Duration) -> Self {
11138 value.clone()
11139 }
11140}
11141#[doc = "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff"]
11142#[derive(Clone, Debug, Deserialize, Serialize)]
11143pub struct IoK8sApimachineryPkgApisMetaV1FieldsV1(pub serde_json::Map<String, serde_json::Value>);
11144impl std::ops::Deref for IoK8sApimachineryPkgApisMetaV1FieldsV1 {
11145 type Target = serde_json::Map<String, serde_json::Value>;
11146 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
11147 &self.0
11148 }
11149}
11150impl From<IoK8sApimachineryPkgApisMetaV1FieldsV1> for serde_json::Map<String, serde_json::Value> {
11151 fn from(value: IoK8sApimachineryPkgApisMetaV1FieldsV1) -> Self {
11152 value.0
11153 }
11154}
11155impl From<&IoK8sApimachineryPkgApisMetaV1FieldsV1> for IoK8sApimachineryPkgApisMetaV1FieldsV1 {
11156 fn from(value: &IoK8sApimachineryPkgApisMetaV1FieldsV1) -> Self {
11157 value.clone()
11158 }
11159}
11160impl From<serde_json::Map<String, serde_json::Value>> for IoK8sApimachineryPkgApisMetaV1FieldsV1 {
11161 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
11162 Self(value)
11163 }
11164}
11165#[doc = "+protobuf.options.(gogoproto.goproto_stringer)=false"]
11166#[derive(Clone, Debug, Deserialize, Serialize)]
11167pub struct IoK8sApimachineryPkgApisMetaV1GroupVersionResource {
11168 #[serde(default, skip_serializing_if = "Option::is_none")]
11169 pub group: Option<String>,
11170 #[serde(default, skip_serializing_if = "Option::is_none")]
11171 pub resource: Option<String>,
11172 #[serde(default, skip_serializing_if = "Option::is_none")]
11173 pub version: Option<String>,
11174}
11175impl From<&IoK8sApimachineryPkgApisMetaV1GroupVersionResource>
11176 for IoK8sApimachineryPkgApisMetaV1GroupVersionResource
11177{
11178 fn from(value: &IoK8sApimachineryPkgApisMetaV1GroupVersionResource) -> Self {
11179 value.clone()
11180 }
11181}
11182#[doc = "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects."]
11183#[derive(Clone, Debug, Deserialize, Serialize)]
11184pub struct IoK8sApimachineryPkgApisMetaV1LabelSelector {
11185 #[doc = "matchExpressions is a list of label selector requirements. The requirements are ANDed."]
11186 #[serde(
11187 rename = "matchExpressions",
11188 default,
11189 skip_serializing_if = "Vec::is_empty"
11190 )]
11191 pub match_expressions: Vec<IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement>,
11192 #[doc = "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed."]
11193 #[serde(
11194 rename = "matchLabels",
11195 default,
11196 skip_serializing_if = "std::collections::HashMap::is_empty"
11197 )]
11198 pub match_labels: std::collections::HashMap<String, String>,
11199}
11200impl From<&IoK8sApimachineryPkgApisMetaV1LabelSelector>
11201 for IoK8sApimachineryPkgApisMetaV1LabelSelector
11202{
11203 fn from(value: &IoK8sApimachineryPkgApisMetaV1LabelSelector) -> Self {
11204 value.clone()
11205 }
11206}
11207#[doc = "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values."]
11208#[derive(Clone, Debug, Deserialize, Serialize)]
11209pub struct IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement {
11210 #[doc = "key is the label key that the selector applies to."]
11211 pub key: String,
11212 #[doc = "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist."]
11213 pub operator: String,
11214 #[doc = "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch."]
11215 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11216 pub values: Vec<String>,
11217}
11218impl From<&IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement>
11219 for IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement
11220{
11221 fn from(value: &IoK8sApimachineryPkgApisMetaV1LabelSelectorRequirement) -> Self {
11222 value.clone()
11223 }
11224}
11225#[doc = "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}."]
11226#[derive(Clone, Debug, Deserialize, Serialize)]
11227pub struct IoK8sApimachineryPkgApisMetaV1ListMeta {
11228 #[doc = "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message."]
11229 #[serde(rename = "continue", default, skip_serializing_if = "Option::is_none")]
11230 pub continue_: Option<String>,
11231 #[doc = "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact."]
11232 #[serde(
11233 rename = "remainingItemCount",
11234 default,
11235 skip_serializing_if = "Option::is_none"
11236 )]
11237 pub remaining_item_count: Option<i64>,
11238 #[doc = "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency"]
11239 #[serde(
11240 rename = "resourceVersion",
11241 default,
11242 skip_serializing_if = "Option::is_none"
11243 )]
11244 pub resource_version: Option<String>,
11245 #[doc = "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release."]
11246 #[serde(rename = "selfLink", default, skip_serializing_if = "Option::is_none")]
11247 pub self_link: Option<String>,
11248}
11249impl From<&IoK8sApimachineryPkgApisMetaV1ListMeta> for IoK8sApimachineryPkgApisMetaV1ListMeta {
11250 fn from(value: &IoK8sApimachineryPkgApisMetaV1ListMeta) -> Self {
11251 value.clone()
11252 }
11253}
11254#[doc = "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to."]
11255#[derive(Clone, Debug, Deserialize, Serialize)]
11256pub struct IoK8sApimachineryPkgApisMetaV1ManagedFieldsEntry {
11257 #[doc = "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted."]
11258 #[serde(
11259 rename = "apiVersion",
11260 default,
11261 skip_serializing_if = "Option::is_none"
11262 )]
11263 pub api_version: Option<String>,
11264 #[doc = "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\""]
11265 #[serde(
11266 rename = "fieldsType",
11267 default,
11268 skip_serializing_if = "Option::is_none"
11269 )]
11270 pub fields_type: Option<String>,
11271 #[doc = "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type."]
11272 #[serde(rename = "fieldsV1", default, skip_serializing_if = "Option::is_none")]
11273 pub fields_v1: Option<IoK8sApimachineryPkgApisMetaV1FieldsV1>,
11274 #[doc = "Manager is an identifier of the workflow managing these fields."]
11275 #[serde(default, skip_serializing_if = "Option::is_none")]
11276 pub manager: Option<String>,
11277 #[doc = "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'."]
11278 #[serde(default, skip_serializing_if = "Option::is_none")]
11279 pub operation: Option<String>,
11280 #[doc = "Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource."]
11281 #[serde(default, skip_serializing_if = "Option::is_none")]
11282 pub subresource: Option<String>,
11283 #[doc = "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'"]
11284 #[serde(default, skip_serializing_if = "Option::is_none")]
11285 pub time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
11286}
11287impl From<&IoK8sApimachineryPkgApisMetaV1ManagedFieldsEntry>
11288 for IoK8sApimachineryPkgApisMetaV1ManagedFieldsEntry
11289{
11290 fn from(value: &IoK8sApimachineryPkgApisMetaV1ManagedFieldsEntry) -> Self {
11291 value.clone()
11292 }
11293}
11294#[doc = "MicroTime is version of Time with microsecond level precision."]
11295#[derive(Clone, Debug, Deserialize, Serialize)]
11296pub struct IoK8sApimachineryPkgApisMetaV1MicroTime(pub chrono::DateTime<chrono::offset::Utc>);
11297impl std::ops::Deref for IoK8sApimachineryPkgApisMetaV1MicroTime {
11298 type Target = chrono::DateTime<chrono::offset::Utc>;
11299 fn deref(&self) -> &chrono::DateTime<chrono::offset::Utc> {
11300 &self.0
11301 }
11302}
11303impl From<IoK8sApimachineryPkgApisMetaV1MicroTime> for chrono::DateTime<chrono::offset::Utc> {
11304 fn from(value: IoK8sApimachineryPkgApisMetaV1MicroTime) -> Self {
11305 value.0
11306 }
11307}
11308impl From<&IoK8sApimachineryPkgApisMetaV1MicroTime> for IoK8sApimachineryPkgApisMetaV1MicroTime {
11309 fn from(value: &IoK8sApimachineryPkgApisMetaV1MicroTime) -> Self {
11310 value.clone()
11311 }
11312}
11313impl From<chrono::DateTime<chrono::offset::Utc>> for IoK8sApimachineryPkgApisMetaV1MicroTime {
11314 fn from(value: chrono::DateTime<chrono::offset::Utc>) -> Self {
11315 Self(value)
11316 }
11317}
11318impl std::str::FromStr for IoK8sApimachineryPkgApisMetaV1MicroTime {
11319 type Err = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11320 fn from_str(value: &str) -> Result<Self, Self::Err> {
11321 Ok(Self(value.parse()?))
11322 }
11323}
11324impl std::convert::TryFrom<&str> for IoK8sApimachineryPkgApisMetaV1MicroTime {
11325 type Error = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11326 fn try_from(value: &str) -> Result<Self, Self::Error> {
11327 value.parse()
11328 }
11329}
11330impl std::convert::TryFrom<&String> for IoK8sApimachineryPkgApisMetaV1MicroTime {
11331 type Error = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11332 fn try_from(value: &String) -> Result<Self, Self::Error> {
11333 value.parse()
11334 }
11335}
11336impl std::convert::TryFrom<String> for IoK8sApimachineryPkgApisMetaV1MicroTime {
11337 type Error = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11338 fn try_from(value: String) -> Result<Self, Self::Error> {
11339 value.parse()
11340 }
11341}
11342impl ToString for IoK8sApimachineryPkgApisMetaV1MicroTime {
11343 fn to_string(&self) -> String {
11344 self.0.to_string()
11345 }
11346}
11347
11348pub use IoK8sApimachineryPkgApisMetaV1ObjectMetaBuilder as ObjectMetaBuilder;
11349pub use IoK8sApimachineryPkgApisMetaV1ObjectMetaBuilderError as ObjectMetaBuilderError;
11350#[doc = "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create."]
11351#[derive(Clone, Debug, Deserialize, Serialize, Default, Builder)]
11352pub struct IoK8sApimachineryPkgApisMetaV1ObjectMeta {
11353 #[builder(default)]
11354 #[doc = "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations"]
11355 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
11356 pub annotations: std::collections::HashMap<String, String>,
11357 #[builder(default)]
11358 #[doc = "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request."]
11359 #[serde(
11360 rename = "clusterName",
11361 default,
11362 skip_serializing_if = "Option::is_none"
11363 )]
11364 pub cluster_name: Option<String>,
11365 #[builder(default)]
11366 #[doc = "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"]
11367 #[serde(
11368 rename = "creationTimestamp",
11369 default,
11370 skip_serializing_if = "Option::is_none"
11371 )]
11372 pub creation_timestamp: Option<IoK8sApimachineryPkgApisMetaV1Time>,
11373 #[builder(default)]
11374 #[doc = "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only."]
11375 #[serde(
11376 rename = "deletionGracePeriodSeconds",
11377 default,
11378 skip_serializing_if = "Option::is_none"
11379 )]
11380 pub deletion_grace_period_seconds: Option<i64>,
11381 #[builder(default)]
11382 #[doc = "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"]
11383 #[serde(
11384 rename = "deletionTimestamp",
11385 default,
11386 skip_serializing_if = "Option::is_none"
11387 )]
11388 pub deletion_timestamp: Option<IoK8sApimachineryPkgApisMetaV1Time>,
11389 #[builder(default)]
11390 #[doc = "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list."]
11391 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11392 pub finalizers: Vec<String>,
11393 #[builder(default)]
11394 #[doc = "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"]
11395 #[serde(
11396 rename = "generateName",
11397 default,
11398 skip_serializing_if = "Option::is_none"
11399 )]
11400 pub generate_name: Option<String>,
11401 #[builder(default)]
11402 #[doc = "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only."]
11403 #[serde(default, skip_serializing_if = "Option::is_none")]
11404 pub generation: Option<i64>,
11405 #[builder(default)]
11406 #[doc = "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels"]
11407 #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
11408 pub labels: std::collections::HashMap<String, String>,
11409 #[builder(default)]
11410 #[doc = "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object."]
11411 #[serde(
11412 rename = "managedFields",
11413 default,
11414 skip_serializing_if = "Vec::is_empty"
11415 )]
11416 pub managed_fields: Vec<IoK8sApimachineryPkgApisMetaV1ManagedFieldsEntry>,
11417 #[doc = "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names"]
11418 #[serde(default, skip_serializing_if = "Option::is_none")]
11419 pub name: Option<String>,
11420 #[builder(default)]
11421 #[doc = "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"]
11422 #[serde(default, skip_serializing_if = "Option::is_none")]
11423 pub namespace: Option<String>,
11424 #[builder(default)]
11425 #[doc = "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller."]
11426 #[serde(
11427 rename = "ownerReferences",
11428 default,
11429 skip_serializing_if = "Vec::is_empty"
11430 )]
11431 pub owner_references: Vec<IoK8sApimachineryPkgApisMetaV1OwnerReference>,
11432 #[builder(default)]
11433 #[doc = "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency"]
11434 #[serde(
11435 rename = "resourceVersion",
11436 default,
11437 skip_serializing_if = "Option::is_none"
11438 )]
11439 pub resource_version: Option<String>,
11440 #[builder(default)]
11441 #[doc = "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release."]
11442 #[serde(rename = "selfLink", default, skip_serializing_if = "Option::is_none")]
11443 pub self_link: Option<String>,
11444 #[builder(default)]
11445 #[doc = "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"]
11446 #[serde(default, skip_serializing_if = "Option::is_none")]
11447 pub uid: Option<String>,
11448}
11449impl From<&IoK8sApimachineryPkgApisMetaV1ObjectMeta> for IoK8sApimachineryPkgApisMetaV1ObjectMeta {
11450 fn from(value: &IoK8sApimachineryPkgApisMetaV1ObjectMeta) -> Self {
11451 value.clone()
11452 }
11453}
11454#[doc = "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field."]
11455#[derive(Clone, Debug, Deserialize, Serialize)]
11456pub struct IoK8sApimachineryPkgApisMetaV1OwnerReference {
11457 #[doc = "API version of the referent."]
11458 #[serde(rename = "apiVersion")]
11459 pub api_version: String,
11460 #[doc = "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."]
11461 #[serde(
11462 rename = "blockOwnerDeletion",
11463 default,
11464 skip_serializing_if = "Option::is_none"
11465 )]
11466 pub block_owner_deletion: Option<bool>,
11467 #[doc = "If true, this reference points to the managing controller."]
11468 #[serde(default, skip_serializing_if = "Option::is_none")]
11469 pub controller: Option<bool>,
11470 #[doc = "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"]
11471 pub kind: String,
11472 #[doc = "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"]
11473 pub name: String,
11474 #[doc = "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"]
11475 pub uid: String,
11476}
11477impl From<&IoK8sApimachineryPkgApisMetaV1OwnerReference>
11478 for IoK8sApimachineryPkgApisMetaV1OwnerReference
11479{
11480 fn from(value: &IoK8sApimachineryPkgApisMetaV1OwnerReference) -> Self {
11481 value.clone()
11482 }
11483}
11484#[doc = "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered."]
11485#[derive(Clone, Debug, Deserialize, Serialize)]
11486pub struct IoK8sApimachineryPkgApisMetaV1StatusCause {
11487 #[doc = "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\""]
11488 #[serde(default, skip_serializing_if = "Option::is_none")]
11489 pub field: Option<String>,
11490 #[doc = "A human-readable description of the cause of the error. This field may be presented as-is to a reader."]
11491 #[serde(default, skip_serializing_if = "Option::is_none")]
11492 pub message: Option<String>,
11493 #[doc = "A machine-readable description of the cause of the error. If this value is empty there is no information available."]
11494 #[serde(default, skip_serializing_if = "Option::is_none")]
11495 pub reason: Option<String>,
11496}
11497impl From<&IoK8sApimachineryPkgApisMetaV1StatusCause>
11498 for IoK8sApimachineryPkgApisMetaV1StatusCause
11499{
11500 fn from(value: &IoK8sApimachineryPkgApisMetaV1StatusCause) -> Self {
11501 value.clone()
11502 }
11503}
11504#[doc = "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers."]
11505#[derive(Clone, Debug, Deserialize, Serialize)]
11506pub struct IoK8sApimachineryPkgApisMetaV1Time(pub chrono::DateTime<chrono::offset::Utc>);
11507impl std::ops::Deref for IoK8sApimachineryPkgApisMetaV1Time {
11508 type Target = chrono::DateTime<chrono::offset::Utc>;
11509 fn deref(&self) -> &chrono::DateTime<chrono::offset::Utc> {
11510 &self.0
11511 }
11512}
11513impl From<IoK8sApimachineryPkgApisMetaV1Time> for chrono::DateTime<chrono::offset::Utc> {
11514 fn from(value: IoK8sApimachineryPkgApisMetaV1Time) -> Self {
11515 value.0
11516 }
11517}
11518impl From<&IoK8sApimachineryPkgApisMetaV1Time> for IoK8sApimachineryPkgApisMetaV1Time {
11519 fn from(value: &IoK8sApimachineryPkgApisMetaV1Time) -> Self {
11520 value.clone()
11521 }
11522}
11523impl From<chrono::DateTime<chrono::offset::Utc>> for IoK8sApimachineryPkgApisMetaV1Time {
11524 fn from(value: chrono::DateTime<chrono::offset::Utc>) -> Self {
11525 Self(value)
11526 }
11527}
11528impl std::str::FromStr for IoK8sApimachineryPkgApisMetaV1Time {
11529 type Err = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11530 fn from_str(value: &str) -> Result<Self, Self::Err> {
11531 Ok(Self(value.parse()?))
11532 }
11533}
11534impl std::convert::TryFrom<&str> for IoK8sApimachineryPkgApisMetaV1Time {
11535 type Error = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11536 fn try_from(value: &str) -> Result<Self, Self::Error> {
11537 value.parse()
11538 }
11539}
11540impl std::convert::TryFrom<&String> for IoK8sApimachineryPkgApisMetaV1Time {
11541 type Error = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11542 fn try_from(value: &String) -> Result<Self, Self::Error> {
11543 value.parse()
11544 }
11545}
11546impl std::convert::TryFrom<String> for IoK8sApimachineryPkgApisMetaV1Time {
11547 type Error = <chrono::DateTime<chrono::offset::Utc> as std::str::FromStr>::Err;
11548 fn try_from(value: String) -> Result<Self, Self::Error> {
11549 value.parse()
11550 }
11551}
11552impl ToString for IoK8sApimachineryPkgApisMetaV1Time {
11553 fn to_string(&self) -> String {
11554 self.0.to_string()
11555 }
11556}
11557#[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
11558pub struct IoK8sApimachineryPkgUtilIntstrIntOrString(pub String);
11559impl std::ops::Deref for IoK8sApimachineryPkgUtilIntstrIntOrString {
11560 type Target = String;
11561 fn deref(&self) -> &String {
11562 &self.0
11563 }
11564}
11565impl From<IoK8sApimachineryPkgUtilIntstrIntOrString> for String {
11566 fn from(value: IoK8sApimachineryPkgUtilIntstrIntOrString) -> Self {
11567 value.0
11568 }
11569}
11570impl From<&IoK8sApimachineryPkgUtilIntstrIntOrString>
11571 for IoK8sApimachineryPkgUtilIntstrIntOrString
11572{
11573 fn from(value: &IoK8sApimachineryPkgUtilIntstrIntOrString) -> Self {
11574 value.clone()
11575 }
11576}
11577impl From<String> for IoK8sApimachineryPkgUtilIntstrIntOrString {
11578 fn from(value: String) -> Self {
11579 Self(value)
11580 }
11581}
11582impl std::str::FromStr for IoK8sApimachineryPkgUtilIntstrIntOrString {
11583 type Err = std::convert::Infallible;
11584 fn from_str(value: &str) -> Result<Self, Self::Err> {
11585 Ok(Self(value.to_string()))
11586 }
11587}
11588impl ToString for IoK8sApimachineryPkgUtilIntstrIntOrString {
11589 fn to_string(&self) -> String {
11590 self.0.to_string()
11591 }
11592}
11593#[derive(Clone, Debug, Deserialize, Serialize)]
11594pub struct SensorCreateSensorRequest {
11595 #[serde(
11596 rename = "createOptions",
11597 default,
11598 skip_serializing_if = "Option::is_none"
11599 )]
11600 pub create_options: Option<IoK8sApimachineryPkgApisMetaV1CreateOptions>,
11601 #[serde(default, skip_serializing_if = "Option::is_none")]
11602 pub namespace: Option<String>,
11603 #[serde(default, skip_serializing_if = "Option::is_none")]
11604 pub sensor: Option<IoArgoprojEventsV1alpha1Sensor>,
11605}
11606impl From<&SensorCreateSensorRequest> for SensorCreateSensorRequest {
11607 fn from(value: &SensorCreateSensorRequest) -> Self {
11608 value.clone()
11609 }
11610}
11611#[derive(Clone, Debug, Deserialize, Serialize)]
11612pub struct SensorDeleteSensorResponse(pub serde_json::Map<String, serde_json::Value>);
11613impl std::ops::Deref for SensorDeleteSensorResponse {
11614 type Target = serde_json::Map<String, serde_json::Value>;
11615 fn deref(&self) -> &serde_json::Map<String, serde_json::Value> {
11616 &self.0
11617 }
11618}
11619impl From<SensorDeleteSensorResponse> for serde_json::Map<String, serde_json::Value> {
11620 fn from(value: SensorDeleteSensorResponse) -> Self {
11621 value.0
11622 }
11623}
11624impl From<&SensorDeleteSensorResponse> for SensorDeleteSensorResponse {
11625 fn from(value: &SensorDeleteSensorResponse) -> Self {
11626 value.clone()
11627 }
11628}
11629impl From<serde_json::Map<String, serde_json::Value>> for SensorDeleteSensorResponse {
11630 fn from(value: serde_json::Map<String, serde_json::Value>) -> Self {
11631 Self(value)
11632 }
11633}
11634#[derive(Clone, Debug, Deserialize, Serialize)]
11635pub struct SensorLogEntry {
11636 #[serde(
11637 rename = "dependencyName",
11638 default,
11639 skip_serializing_if = "Option::is_none"
11640 )]
11641 pub dependency_name: Option<String>,
11642 #[serde(
11643 rename = "eventContext",
11644 default,
11645 skip_serializing_if = "Option::is_none"
11646 )]
11647 pub event_context: Option<String>,
11648 #[serde(default, skip_serializing_if = "Option::is_none")]
11649 pub level: Option<String>,
11650 #[serde(default, skip_serializing_if = "Option::is_none")]
11651 pub msg: Option<String>,
11652 #[serde(default, skip_serializing_if = "Option::is_none")]
11653 pub namespace: Option<String>,
11654 #[serde(
11655 rename = "sensorName",
11656 default,
11657 skip_serializing_if = "Option::is_none"
11658 )]
11659 pub sensor_name: Option<String>,
11660 #[serde(default, skip_serializing_if = "Option::is_none")]
11661 pub time: Option<IoK8sApimachineryPkgApisMetaV1Time>,
11662 #[serde(
11663 rename = "triggerName",
11664 default,
11665 skip_serializing_if = "Option::is_none"
11666 )]
11667 pub trigger_name: Option<String>,
11668}
11669impl From<&SensorLogEntry> for SensorLogEntry {
11670 fn from(value: &SensorLogEntry) -> Self {
11671 value.clone()
11672 }
11673}
11674#[derive(Clone, Debug, Deserialize, Serialize)]
11675pub struct SensorSensorWatchEvent {
11676 #[serde(default, skip_serializing_if = "Option::is_none")]
11677 pub object: Option<IoArgoprojEventsV1alpha1Sensor>,
11678 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
11679 pub type_: Option<String>,
11680}
11681impl From<&SensorSensorWatchEvent> for SensorSensorWatchEvent {
11682 fn from(value: &SensorSensorWatchEvent) -> Self {
11683 value.clone()
11684 }
11685}
11686#[derive(Clone, Debug, Deserialize, Serialize)]
11687pub struct SensorUpdateSensorRequest {
11688 #[serde(default, skip_serializing_if = "Option::is_none")]
11689 pub name: Option<String>,
11690 #[serde(default, skip_serializing_if = "Option::is_none")]
11691 pub namespace: Option<String>,
11692 #[serde(default, skip_serializing_if = "Option::is_none")]
11693 pub sensor: Option<IoArgoprojEventsV1alpha1Sensor>,
11694}
11695impl From<&SensorUpdateSensorRequest> for SensorUpdateSensorRequest {
11696 fn from(value: &SensorUpdateSensorRequest) -> Self {
11697 value.clone()
11698 }
11699}