@openshift-assisted/types 2.9.5-cim

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2865 @@
1
+ /**
2
+ * The virtual IP used to reach the OpenShift cluster's API.
3
+ */
4
+ export interface ApiVip {
5
+ /**
6
+ * The cluster that this VIP is associated with.
7
+ */
8
+ clusterId?: string; // uuid
9
+ /**
10
+ * The IP address.
11
+ */
12
+ ip?: Ip; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
13
+ /**
14
+ * API VIP verification result.
15
+ */
16
+ verification?: VipVerification;
17
+ }
18
+
19
+ export interface ApiVipConnectivityRequest {
20
+ /**
21
+ * URL address of the API.
22
+ */
23
+ url: string;
24
+ /**
25
+ * Whether to verify if the API VIP belongs to one of the interfaces (DEPRECATED).
26
+ */
27
+ verifyCidr?: boolean;
28
+ /**
29
+ * A CA certficate to be used when contacting the URL via https.
30
+ */
31
+ caCertificate?: string;
32
+ /**
33
+ * A string which will be used as Authorization Bearer token to fetch the ignition from ignitionEndpointUrl.
34
+ */
35
+ ignitionEndpointToken?: string;
36
+ }
37
+
38
+ /**
39
+ * The response from the day-2 agent's attempt to download the worker ignition file from the API machine config server of the target cluster.
40
+ * Note - the name "API VIP connectivity" is old and misleading and is preserved for backwards compatibility.
41
+ */
42
+ export interface ApiVipConnectivityResponse {
43
+ /**
44
+ * Whether the agent was able to download the ignition or not
45
+ */
46
+ isSuccess?: boolean;
47
+ /**
48
+ * This parameter mirrors the url parameter of the corresponding apiVipConnectivityRequest
49
+ */
50
+ url?: string;
51
+ /**
52
+ * The error that occurred while downloading the worker ignition file, ignored when isSuccess is true
53
+ */
54
+ downloadError?: string;
55
+ /**
56
+ * Ignition file fetched from the target cluster's API machine config server.
57
+ * This ignition file may be incomplete as almost all files / systemd units are removed from it by the agent in order to save space.
58
+ */
59
+ ignition?: string;
60
+ }
61
+
62
+ export type ArchitectureSupportLevelId =
63
+ | 'X86_64_ARCHITECTURE'
64
+ | 'ARM64_ARCHITECTURE'
65
+ | 'PPC64LE_ARCHITECTURE'
66
+ | 'S390X_ARCHITECTURE'
67
+ | 'MULTIARCH_RELEASE_IMAGE';
68
+
69
+ export interface BindHostParams {
70
+ clusterId: string; // uuid
71
+ }
72
+
73
+ export interface Boot {
74
+ currentBootMode?: string;
75
+ pxeInterface?: string;
76
+ }
77
+
78
+ export interface Cluster {
79
+ /**
80
+ * Indicates the type of this object. Will be 'Cluster' if this is a complete object,
81
+ * 'AddHostsCluster' for cluster that add hosts to existing OCP cluster,
82
+ *
83
+ */
84
+ kind: 'Cluster' | 'AddHostsCluster';
85
+ /**
86
+ * Guaranteed availability of the installed cluster. 'Full' installs a Highly-Available cluster
87
+ * over multiple master nodes whereas 'None' installs a full cluster over one node.
88
+ *
89
+ */
90
+ highAvailabilityMode?: 'Full' | 'None';
91
+ /**
92
+ * Unique identifier of the object.
93
+ */
94
+ id: string; // uuid
95
+ /**
96
+ * Self link.
97
+ */
98
+ href: string;
99
+ /**
100
+ * Name of the OpenShift cluster.
101
+ */
102
+ name?: string;
103
+ userName?: string;
104
+ orgId?: string;
105
+ emailDomain?: string;
106
+ /**
107
+ * Version of the OpenShift cluster.
108
+ */
109
+ openshiftVersion?: string;
110
+ /**
111
+ * OpenShift release image URI.
112
+ */
113
+ ocpReleaseImage?: string;
114
+ /**
115
+ * Cluster ID on OCP system.
116
+ */
117
+ openshiftClusterId?: string; // uuid
118
+ imageInfo: ImageInfo;
119
+ platform?: Platform;
120
+ /**
121
+ * Base domain of the cluster. All DNS records must be sub-domains of this base and include the cluster name.
122
+ */
123
+ baseDnsDomain?: string;
124
+ /**
125
+ * IP address block from which Pod IPs are allocated. This block must not overlap with existing physical networks. These IP addresses are used for the Pod network, and if you need to access the Pods from an external network, configure load balancers and routers to manage the traffic.
126
+ */
127
+ clusterNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
128
+ /**
129
+ * The subnet prefix length to assign to each individual node. For example, if clusterNetworkHostPrefix is set to 23, then each node is assigned a /23 subnet out of the given cidr (clusterNetworkCIDR), which allows for 510 (2^(32 - 23) - 2) pod IPs addresses. If you are required to provide access to nodes from an external network, configure load balancers and routers to manage the traffic.
130
+ */
131
+ clusterNetworkHostPrefix?: number;
132
+ /**
133
+ * The IP address pool to use for service IP addresses. You can enter only one IP address pool. If you need to access the services from an external network, configure load balancers and routers to manage the traffic.
134
+ */
135
+ serviceNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
136
+ /**
137
+ * (DEPRECATED) The virtual IP used to reach the OpenShift cluster's API.
138
+ */
139
+ apiVip?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))$
140
+ /**
141
+ * The virtual IPs used to reach the OpenShift cluster's API. Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at most one IP address per IP stack used). The order of stacks should be the same as order of subnets in Cluster Networks, Service Networks, and Machine Networks.
142
+ */
143
+ apiVips?: ApiVip[];
144
+ /**
145
+ * The domain name used to reach the OpenShift cluster API.
146
+ */
147
+ apiVipDnsName?: string;
148
+ /**
149
+ * A CIDR that all hosts belonging to the cluster should have an interfaces with IP address that belongs to this CIDR. The apiVip belongs to this CIDR.
150
+ */
151
+ machineNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
152
+ /**
153
+ * (DEPRECATED) The virtual IP used for cluster ingress traffic.
154
+ */
155
+ ingressVip?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))$
156
+ /**
157
+ * The virtual IPs used for cluster ingress traffic. Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at most one IP address per IP stack used). The order of stacks should be the same as order of subnets in Cluster Networks, Service Networks, and Machine Networks.
158
+ */
159
+ ingressVips?: IngressVip[];
160
+ /**
161
+ * SSH public key for debugging OpenShift nodes.
162
+ */
163
+ sshPublicKey?: string;
164
+ /**
165
+ * A proxy URL to use for creating HTTP connections outside the cluster.
166
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
167
+ *
168
+ */
169
+ httpProxy?: string;
170
+ /**
171
+ * A proxy URL to use for creating HTTPS connections outside the cluster.
172
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
173
+ *
174
+ */
175
+ httpsProxy?: string;
176
+ /**
177
+ * A comma-separated list of destination domain names, domains, IP addresses, or other network CIDRs to exclude from proxying.
178
+ */
179
+ noProxy?: string;
180
+ /**
181
+ * Status of the OpenShift cluster.
182
+ */
183
+ status:
184
+ | 'insufficient'
185
+ | 'ready'
186
+ | 'error'
187
+ | 'preparing-for-installation'
188
+ | 'pending-for-input'
189
+ | 'installing'
190
+ | 'finalizing'
191
+ | 'installed'
192
+ | 'adding-hosts'
193
+ | 'cancelled'
194
+ | 'installing-pending-user-action';
195
+ /**
196
+ * Additional information pertaining to the status of the OpenShift cluster.
197
+ */
198
+ statusInfo: string;
199
+ /**
200
+ * The last time that the cluster status was updated.
201
+ */
202
+ statusUpdatedAt?: string; // date-time
203
+ /**
204
+ * Installation progress percentages of the cluster.
205
+ */
206
+ progress?: ClusterProgressInfo;
207
+ /**
208
+ * Information regarding hosts' installation disks encryption.
209
+ */
210
+ diskEncryption?: DiskEncryption;
211
+ /**
212
+ * Hosts that are associated with this cluster.
213
+ */
214
+ hosts?: Host[];
215
+ /**
216
+ * hosts associated to this cluster that are in 'known' state.
217
+ */
218
+ readyHostCount?: number; // int64
219
+ /**
220
+ * hosts associated to this cluster that are not in 'disabled' state.
221
+ */
222
+ enabledHostCount?: number; // int64
223
+ /**
224
+ * All hosts associated to this cluster.
225
+ */
226
+ totalHostCount?: number; // int64
227
+ /**
228
+ * Schedule workloads on masters
229
+ */
230
+ schedulableMasters?: boolean;
231
+ /**
232
+ * Indicates if schedule workloads on masters will be enabled regardless the value of 'schedulableMasters' property.
233
+ * Set to 'true' when not enough hosts are associated with this cluster to disable the scheduling on masters.
234
+ *
235
+ */
236
+ schedulableMastersForcedTrue?: boolean;
237
+ /**
238
+ * The last time that this cluster was updated.
239
+ */
240
+ updatedAt?: string; // date-time
241
+ /**
242
+ * The time that this cluster was created.
243
+ */
244
+ createdAt?: string; // date-time
245
+ /**
246
+ * The time that this cluster started installation.
247
+ */
248
+ installStartedAt?: string; // date-time
249
+ /**
250
+ * The time that this cluster completed installation.
251
+ */
252
+ installCompletedAt?: string; // date-time
253
+ /**
254
+ * List of host networks to be filled during query.
255
+ */
256
+ hostNetworks?: HostNetwork[];
257
+ /**
258
+ * True if the pull secret has been added to the cluster.
259
+ */
260
+ pullSecretSet?: boolean;
261
+ /**
262
+ * Indicate if virtual IP DHCP allocation mode is enabled.
263
+ */
264
+ vipDhcpAllocation?: boolean;
265
+ /**
266
+ * JSON-formatted string containing the validation results for each validation id grouped by category (network, hosts-data, etc.)
267
+ */
268
+ validationsInfo?: string;
269
+ /**
270
+ * The progress of log collection or empty if logs are not applicable
271
+ */
272
+ logsInfo?: LogsState;
273
+ /**
274
+ * JSON-formatted string containing the user overrides for the install-config.yaml file.
275
+ * example:
276
+ * {"networking":{"networkType": "OVNKubernetes"},"fips":true}
277
+ */
278
+ installConfigOverrides?: string;
279
+ controllerLogsCollectedAt?: string; // date-time
280
+ controllerLogsStartedAt?: string; // date-time
281
+ /**
282
+ * Json formatted string containing the majority groups for connectivity checks.
283
+ */
284
+ connectivityMajorityGroups?: string;
285
+ /**
286
+ * Json formatted string containing ip collisions detected in the cluster.
287
+ */
288
+ ipCollisions?: string;
289
+ /**
290
+ * Json formatted string containing a list of host validations to be ignored. May also contain a list with a single string "all" to ignore all host validations. Some validations cannot be ignored.
291
+ */
292
+ ignoredHostValidations?: string;
293
+ /**
294
+ * Json formatted string containing a list of cluster validations to be ignored. May also contain a list with a single string "all" to ignore all cluster validations. Some validations cannot be ignored.
295
+ */
296
+ ignoredClusterValidations?: string;
297
+ /**
298
+ * swagger:ignore
299
+ */
300
+ deletedAt?: unknown;
301
+ /**
302
+ * (DEPRECATED) Indicate if the networking is managed by the user.
303
+ */
304
+ userManagedNetworking?: boolean;
305
+ /**
306
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
307
+ */
308
+ additionalNtpSource?: string;
309
+ /**
310
+ * Operators that are associated with this cluster.
311
+ */
312
+ monitoredOperators?: MonitoredOperator[];
313
+ /**
314
+ * Unique identifier of the AMS subscription in OCM.
315
+ */
316
+ amsSubscriptionId?: string; // uuid
317
+ /**
318
+ * Enable/disable hyperthreading on master nodes, worker nodes, or all nodes
319
+ */
320
+ hyperthreading?: 'masters' | 'workers' | 'all' | 'none';
321
+ /**
322
+ * JSON-formatted string containing the usage information by feature name
323
+ */
324
+ featureUsage?: string;
325
+ /**
326
+ * The desired network type used.
327
+ */
328
+ networkType?: 'OpenShiftSDN' | 'OVNKubernetes';
329
+ /**
330
+ * Cluster networks that are associated with this cluster.
331
+ */
332
+ clusterNetworks?: ClusterNetwork[];
333
+ /**
334
+ * Service networks that are associated with this cluster.
335
+ */
336
+ serviceNetworks?: ServiceNetwork[];
337
+ /**
338
+ * Machine networks that are associated with this cluster.
339
+ */
340
+ machineNetworks?: MachineNetwork[];
341
+ /**
342
+ * The CPU architecture of the image (x86_64/arm64/etc).
343
+ */
344
+ cpuArchitecture?: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x' | 'multi';
345
+ /**
346
+ * Explicit ignition endpoint overrides the default ignition endpoint.
347
+ */
348
+ ignitionEndpoint?: IgnitionEndpoint;
349
+ /**
350
+ * Indicates whether this cluster is an imported day-2 cluster or a
351
+ * regular cluster. Clusters are considered imported when they are
352
+ * created via the ../clusters/import endpoint. Day-2 clusters converted
353
+ * from day-1 clusters by kube-api controllers or the
354
+ * ../clusters/<clusterId>/actions/allow-add-hosts endpoint are not
355
+ * considered imported. Imported clusters usually lack a lot of
356
+ * information and are filled with default values that don't necessarily
357
+ * reflect the actual cluster they represent
358
+ */
359
+ imported?: boolean;
360
+ /**
361
+ * A comma-separated list of tags that are associated to the cluster.
362
+ */
363
+ tags?: string;
364
+ }
365
+
366
+ export interface ClusterCreateParams {
367
+ /**
368
+ * Name of the OpenShift cluster.
369
+ */
370
+ name: string;
371
+ /**
372
+ * Guaranteed availability of the installed cluster. 'Full' installs a Highly-Available cluster
373
+ * over multiple master nodes whereas 'None' installs a full cluster over one node.
374
+ *
375
+ */
376
+ highAvailabilityMode?: 'Full' | 'None';
377
+ /**
378
+ * Version of the OpenShift cluster.
379
+ */
380
+ openshiftVersion: string;
381
+ /**
382
+ * OpenShift release image URI.
383
+ */
384
+ ocpReleaseImage?: string;
385
+ /**
386
+ * Base domain of the cluster. All DNS records must be sub-domains of this base and include the cluster name.
387
+ */
388
+ baseDnsDomain?: string;
389
+ /**
390
+ * IP address block from which Pod IPs are allocated. This block must not overlap with existing physical networks. These IP addresses are used for the Pod network, and if you need to access the Pods from an external network, configure load balancers and routers to manage the traffic.
391
+ */
392
+ clusterNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
393
+ /**
394
+ * The subnet prefix length to assign to each individual node. For example, if clusterNetworkHostPrefix is set to 23, then each node is assigned a /23 subnet out of the given cidr (clusterNetworkCIDR), which allows for 510 (2^(32 - 23) - 2) pod IPs addresses. If you are required to provide access to nodes from an external network, configure load balancers and routers to manage the traffic.
395
+ */
396
+ clusterNetworkHostPrefix?: number;
397
+ /**
398
+ * The IP address pool to use for service IP addresses. You can enter only one IP address pool. If you need to access the services from an external network, configure load balancers and routers to manage the traffic.
399
+ */
400
+ serviceNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
401
+ /**
402
+ * (DEPRECATED) The virtual IP used to reach the OpenShift cluster's API.
403
+ */
404
+ apiVip?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
405
+ /**
406
+ * The virtual IPs used to reach the OpenShift cluster's API. Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at most one IP address per IP stack used). The order of stacks should be the same as order of subnets in Cluster Networks, Service Networks, and Machine Networks.
407
+ */
408
+ apiVips?: ApiVip[];
409
+ /**
410
+ * (DEPRECATED) The virtual IP used for cluster ingress traffic.
411
+ */
412
+ ingressVip?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))$
413
+ /**
414
+ * The virtual IPs used for cluster ingress traffic. Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at most one IP address per IP stack used). The order of stacks should be the same as order of subnets in Cluster Networks, Service Networks, and Machine Networks.
415
+ */
416
+ ingressVips?: IngressVip[];
417
+ /**
418
+ * The pull secret obtained from Red Hat OpenShift Cluster Manager at console.redhat.com/openshift/install/pull-secret.
419
+ */
420
+ pullSecret: string;
421
+ /**
422
+ * SSH public key for debugging OpenShift nodes.
423
+ */
424
+ sshPublicKey?: string;
425
+ /**
426
+ * Indicate if virtual IP DHCP allocation mode is enabled.
427
+ */
428
+ vipDhcpAllocation?: boolean;
429
+ /**
430
+ * A proxy URL to use for creating HTTP connections outside the cluster.
431
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
432
+ *
433
+ */
434
+ httpProxy?: string;
435
+ /**
436
+ * A proxy URL to use for creating HTTPS connections outside the cluster.
437
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
438
+ *
439
+ */
440
+ httpsProxy?: string;
441
+ /**
442
+ * An "*" or a comma-separated list of destination domain names, domains, IP addresses, or other network CIDRs to exclude from proxying.
443
+ */
444
+ noProxy?: string;
445
+ /**
446
+ * (DEPRECATED) Indicate if the networking is managed by the user.
447
+ */
448
+ userManagedNetworking?: boolean;
449
+ /**
450
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
451
+ */
452
+ additionalNtpSource?: string;
453
+ /**
454
+ * List of OLM operators to be installed.
455
+ */
456
+ olmOperators?: OperatorCreateParams[];
457
+ /**
458
+ * Enable/disable hyperthreading on master nodes, worker nodes, or all nodes.
459
+ */
460
+ hyperthreading?: 'masters' | 'workers' | 'none' | 'all';
461
+ /**
462
+ * The desired network type used.
463
+ */
464
+ networkType?: 'OpenShiftSDN' | 'OVNKubernetes';
465
+ /**
466
+ * Schedule workloads on masters
467
+ */
468
+ schedulableMasters?: boolean;
469
+ /**
470
+ * Cluster networks that are associated with this cluster.
471
+ */
472
+ clusterNetworks?: ClusterNetwork[];
473
+ /**
474
+ * Service networks that are associated with this cluster.
475
+ */
476
+ serviceNetworks?: ServiceNetwork[];
477
+ /**
478
+ * Machine networks that are associated with this cluster.
479
+ */
480
+ machineNetworks?: MachineNetwork[];
481
+ platform?: Platform;
482
+ /**
483
+ * The CPU architecture of the image (x86_64/arm64/etc).
484
+ */
485
+ cpuArchitecture?: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x' | 'multi';
486
+ /**
487
+ * Installation disks encryption mode and host roles to be applied.
488
+ */
489
+ diskEncryption?: DiskEncryption;
490
+ /**
491
+ * Explicit ignition endpoint overrides the default ignition endpoint.
492
+ */
493
+ ignitionEndpoint?: IgnitionEndpoint;
494
+ /**
495
+ * A comma-separated list of tags that are associated to the cluster.
496
+ */
497
+ tags?: string;
498
+ }
499
+
500
+ export interface ClusterDefaultConfig {
501
+ clusterNetworkCidr?: string; // ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[\/]([1-9]|[1-2][0-9]|3[0-2]?)$
502
+ clusterNetworkHostPrefix?: number;
503
+ inactiveDeletionHours?: number;
504
+ serviceNetworkCidr?: string; // ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[\/]([1-9]|[1-2][0-9]|3[0-2]?)$
505
+ ntpSource?: string;
506
+ clusterNetworksIpv4?: ClusterNetwork[];
507
+ clusterNetworksDualstack?: ClusterNetwork[];
508
+ serviceNetworksIpv4?: ServiceNetwork[];
509
+ serviceNetworksDualstack?: ServiceNetwork[];
510
+ /**
511
+ * This provides a list of forbidden hostnames. If this list is empty or not present, this implies that the UI should fall back to a hard coded list.
512
+ */
513
+ forbiddenHostnames?: string[];
514
+ }
515
+
516
+ export interface ClusterHostRequirements {
517
+ /**
518
+ * Unique identifier of the host the requirements relate to.
519
+ */
520
+ hostId?: string; // uuid
521
+ /**
522
+ * Total host requirements for the cluster configuration
523
+ */
524
+ total?: ClusterHostRequirementsDetails;
525
+ /**
526
+ * Host requirements for the OCP installation
527
+ */
528
+ ocp?: ClusterHostRequirementsDetails;
529
+ /**
530
+ * Host requirements related to requested operators
531
+ */
532
+ operators?: OperatorHostRequirements[];
533
+ }
534
+
535
+ export interface ClusterHostRequirementsDetails {
536
+ /**
537
+ * Required number of CPU cores
538
+ */
539
+ cpuCores?: number;
540
+ /**
541
+ * Required number of RAM in MiB
542
+ */
543
+ ramMib?: number;
544
+ /**
545
+ * Required disk size in GB
546
+ */
547
+ diskSizeGb?: number;
548
+ /**
549
+ * Required installation disk speed in ms
550
+ */
551
+ installationDiskSpeedThresholdMs?: number;
552
+ /**
553
+ * Maximum network average latency (RTT) at L3 for role.
554
+ */
555
+ networkLatencyThresholdMs?: number; // double
556
+ /**
557
+ * Maximum packet loss allowed at L3 for role.
558
+ */
559
+ packetLossPercentage?: number; // double
560
+ /**
561
+ * Whether TPM module should be enabled in host's BIOS.
562
+ */
563
+ tpmEnabledInBios?: boolean;
564
+ }
565
+
566
+ export type ClusterHostRequirementsList = ClusterHostRequirements[];
567
+ export type ClusterList = Cluster[];
568
+
569
+ /**
570
+ * A network from which Pod IPs are allocated. This block must not overlap with existing physical networks. These IP addresses are used for the Pod network, and if you need to access the Pods from an external network, configure load balancers and routers to manage the traffic.
571
+ */
572
+ export interface ClusterNetwork {
573
+ /**
574
+ * The cluster that this network is associated with.
575
+ */
576
+ clusterId?: string; // uuid
577
+ /**
578
+ * The IP block address pool.
579
+ */
580
+ cidr?: Subnet; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
581
+ /**
582
+ * The subnet prefix length to assign to each individual node. For example if is set to 23, then each node is assigned a /23 subnet out of the given CIDR, which allows for 510 (2^(32 - 23) - 2) pod IPs addresses.
583
+ */
584
+ hostPrefix?: number;
585
+ }
586
+
587
+ export interface ClusterProgressInfo {
588
+ totalPercentage?: number;
589
+ preparingForInstallationStagePercentage?: number;
590
+ installingStagePercentage?: number;
591
+ finalizingStagePercentage?: number;
592
+ }
593
+
594
+ export type ClusterValidationId =
595
+ | 'machine-cidr-defined'
596
+ | 'cluster-cidr-defined'
597
+ | 'service-cidr-defined'
598
+ | 'no-cidrs-overlapping'
599
+ | 'networks-same-address-families'
600
+ | 'network-prefix-valid'
601
+ | 'machine-cidr-equals-to-calculated-cidr'
602
+ | 'api-vips-defined'
603
+ | 'api-vips-valid'
604
+ | 'ingress-vips-defined'
605
+ | 'ingress-vips-valid'
606
+ | 'all-hosts-are-ready-to-install'
607
+ | 'sufficient-masters-count'
608
+ | 'dns-domain-defined'
609
+ | 'pull-secret-set'
610
+ | 'ntp-server-configured'
611
+ | 'lso-requirements-satisfied'
612
+ | 'ocs-requirements-satisfied'
613
+ | 'odf-requirements-satisfied'
614
+ | 'cnv-requirements-satisfied'
615
+ | 'lvm-requirements-satisfied'
616
+ | 'mce-requirements-satisfied'
617
+ | 'network-type-valid'
618
+ | 'platform-requirements-satisfied';
619
+
620
+ export interface CompletionParams {
621
+ isSuccess: boolean;
622
+ errorInfo?: string;
623
+ /**
624
+ * additional data from the cluster
625
+ */
626
+ data?: {
627
+ [name: string]: Record<string, unknown>;
628
+ };
629
+ }
630
+
631
+ export interface ConnectivityCheckHost {
632
+ hostId?: string; // uuid
633
+ nics?: ConnectivityCheckNic[];
634
+ }
635
+
636
+ export interface ConnectivityCheckNic {
637
+ name?: string;
638
+ mac?: string; // mac
639
+ ipAddresses?: string /* ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))$ */[];
640
+ }
641
+
642
+ export type ConnectivityCheckParams = ConnectivityCheckHost[];
643
+
644
+ export interface ConnectivityRemoteHost {
645
+ hostId?: string; // uuid
646
+ l2Connectivity?: L2Connectivity[];
647
+ l3Connectivity?: L3Connectivity[];
648
+ }
649
+
650
+ export interface ConnectivityReport {
651
+ remoteHosts?: ConnectivityRemoteHost[];
652
+ }
653
+
654
+ export interface ContainerImageAvailability {
655
+ /**
656
+ * A fully qualified image name (FQIN).
657
+ */
658
+ name?: string;
659
+ /**
660
+ * Size of the image in bytes.
661
+ */
662
+ sizeBytes?: number;
663
+ /**
664
+ * Seconds it took to pull the image.
665
+ */
666
+ time?: number;
667
+ /**
668
+ * The rate of size/time in seconds MBps.
669
+ */
670
+ downloadRate?: number;
671
+ result?: ContainerImageAvailabilityResult;
672
+ }
673
+
674
+ export interface ContainerImageAvailabilityRequest {
675
+ /**
676
+ * Positive number represents a timeout in seconds for a pull operation.
677
+ */
678
+ timeout?: number;
679
+ /**
680
+ * List of image names to be checked.
681
+ */
682
+ images: string /* ^(([a-zA-Z0-9\-\.]+)(:[0-9]+)?\/)?[a-z0-9\._\-\/@]+[?::a-zA-Z0-9_\-.]+$ */[];
683
+ }
684
+
685
+ export interface ContainerImageAvailabilityResponse {
686
+ /**
687
+ * List of images that were checked.
688
+ */
689
+ images: ContainerImageAvailability[];
690
+ }
691
+
692
+ /**
693
+ * Image availability result.
694
+ */
695
+ export type ContainerImageAvailabilityResult = 'success' | 'failure';
696
+
697
+ export interface Cpu {
698
+ count?: number;
699
+ frequency?: number;
700
+ flags?: string[];
701
+ modelName?: string;
702
+ architecture?: string;
703
+ }
704
+
705
+ export interface CreateManifestParams {
706
+ /**
707
+ * The folder that contains the files. Manifests can be placed in 'manifests' or 'openshift' directories.
708
+ */
709
+ folder?: 'manifests' | 'openshift';
710
+ /**
711
+ * The name of the manifest to customize the installed OCP cluster.
712
+ */
713
+ fileName: string; // ^[^/]*\.(yaml|yml|json)$
714
+ /**
715
+ * base64 encoded manifest content.
716
+ */
717
+ content: string;
718
+ }
719
+
720
+ export interface Credentials {
721
+ username?: string;
722
+ password?: string;
723
+ consoleUrl?: string;
724
+ }
725
+
726
+ export interface DhcpAllocationRequest {
727
+ /**
728
+ * The network interface (NIC) to run the DHCP requests on.
729
+ */
730
+ interface: string;
731
+ /**
732
+ * MAC address for the API virtual IP.
733
+ */
734
+ apiVipMac: string; // mac
735
+ /**
736
+ * MAC address for the Ingress virtual IP.
737
+ */
738
+ ingressVipMac: string; // mac
739
+ /**
740
+ * Contents of lease file to be used for API virtual IP.
741
+ */
742
+ apiVipLease?: string;
743
+ /**
744
+ * Contents of lease file to be used for for Ingress virtual IP.
745
+ */
746
+ ingressVipLease?: string;
747
+ }
748
+
749
+ export interface DhcpAllocationResponse {
750
+ /**
751
+ * The IPv4 address that was allocated by DHCP for the API virtual IP.
752
+ */
753
+ apiVipAddress: string; // ipv4
754
+ /**
755
+ * The IPv4 address that was allocated by DHCP for the Ingress virtual IP.
756
+ */
757
+ ingressVipAddress: string; // ipv4
758
+ /**
759
+ * Contents of last acquired lease for API virtual IP.
760
+ */
761
+ apiVipLease?: string;
762
+ /**
763
+ * Contents of last acquired lease for Ingress virtual IP.
764
+ */
765
+ ingressVipLease?: string;
766
+ }
767
+
768
+ export interface Disk {
769
+ /**
770
+ * Determine the disk's unique identifier which is the by-id field if it exists and fallback to the by-path field otherwise
771
+ */
772
+ id?: string;
773
+ driveType?: DriveType;
774
+ hasUuid?: boolean;
775
+ vendor?: string;
776
+ name?: string;
777
+ path?: string;
778
+ hctl?: string;
779
+ /**
780
+ * by-path is the shortest physical path to the device
781
+ */
782
+ byPath?: string;
783
+ /**
784
+ * by-id is the World Wide Number of the device which guaranteed to be unique for every storage device
785
+ */
786
+ byId?: string;
787
+ model?: string;
788
+ wwn?: string;
789
+ serial?: string;
790
+ sizeBytes?: number;
791
+ bootable?: boolean;
792
+ removable?: boolean;
793
+ /**
794
+ * Whether the disk appears to be an installation media or not
795
+ */
796
+ isInstallationMedia?: boolean;
797
+ installationEligibility?: {
798
+ /**
799
+ * Whether the disk is eligible for installation or not.
800
+ */
801
+ eligible?: boolean;
802
+ /**
803
+ * Reasons for why this disk is not eligible for installation.
804
+ */
805
+ notEligibleReasons?: string[];
806
+ };
807
+ smart?: string;
808
+ ioPerf?: IoPerf;
809
+ /**
810
+ * A comma-separated list of disk names that this disk belongs to
811
+ */
812
+ holders?: string;
813
+ }
814
+
815
+ export interface DiskConfigParams {
816
+ id: string;
817
+ role?: DiskRole;
818
+ }
819
+
820
+ export interface DiskEncryption {
821
+ /**
822
+ * Enable/disable disk encryption on master nodes, worker nodes, or all nodes.
823
+ */
824
+ enableOn?: 'none' | 'all' | 'masters' | 'workers';
825
+ /**
826
+ * The disk encryption mode to use.
827
+ */
828
+ mode?: 'tpmv2' | 'tang';
829
+ /**
830
+ * JSON-formatted string containing additional information regarding tang's configuration
831
+ * example:
832
+ * [{"url":"http://tang.example.com:7500","thumbprint":"PLjNyRdGw03zlRoGjQYMahSZGu9"}, {"url":"http://tang.example.com:7501","thumbprint":"PLjNyRdGw03zlRoGjQYMahSZGu8"}]
833
+ */
834
+ tangServers?: string;
835
+ }
836
+
837
+ export interface DiskInfo {
838
+ id?: string; // uuid
839
+ path?: string;
840
+ diskSpeed?: DiskSpeed;
841
+ }
842
+
843
+ export type DiskRole = 'none' | 'install';
844
+
845
+ /**
846
+ * Allows an addition or removal of a host disk from the host's skipFormattingDisks list
847
+ */
848
+ export interface DiskSkipFormattingParams {
849
+ /**
850
+ * The ID of the disk that is being added to or removed from the host's skipFormattingDisks list
851
+ */
852
+ diskId: string;
853
+ /**
854
+ * True if you wish to add the disk to the skipFormattingDisks list, false if you wish to remove it
855
+ */
856
+ skipFormatting: boolean;
857
+ }
858
+
859
+ export interface DiskSpeed {
860
+ tested?: boolean;
861
+ exitCode?: number;
862
+ speedMs?: number;
863
+ }
864
+
865
+ export interface DiskSpeedCheckRequest {
866
+ /**
867
+ * --filename argument for fio (expects a file or a block device path).
868
+ */
869
+ path: string;
870
+ }
871
+
872
+ export interface DiskSpeedCheckResponse {
873
+ /**
874
+ * The 99th percentile of fdatasync durations in milliseconds.
875
+ */
876
+ ioSyncDuration?: number;
877
+ /**
878
+ * The device path.
879
+ */
880
+ path?: string;
881
+ }
882
+
883
+ export interface DomainResolutionRequest {
884
+ domains: {
885
+ /**
886
+ * The domain name that should be resolved
887
+ */
888
+ domainName: string; // ^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*[.])+[a-zA-Z]{2,}[.]?$
889
+ }[];
890
+ }
891
+
892
+ export interface DomainResolutionResponse {
893
+ resolutions: {
894
+ /**
895
+ * The domain that was resolved
896
+ */
897
+ domainName: string;
898
+ /**
899
+ * The IPv4 addresses of the domain, empty if none
900
+ */
901
+ ipv4Addresses?: string /* ipv4 */[];
902
+ /**
903
+ * The IPv6 addresses of the domain, empty if none
904
+ */
905
+ ipv6Addresses?: string /* ipv6 */[];
906
+ }[];
907
+ }
908
+
909
+ /**
910
+ * Information sent to the agent for downloading artifacts to boot a host into discovery.
911
+ */
912
+ export interface DownloadBootArtifactsRequest {
913
+ /**
914
+ * URL address to download the kernel.
915
+ */
916
+ kernelUrl: string;
917
+ /**
918
+ * URL address to download the rootfs.
919
+ */
920
+ rootfsUrl: string;
921
+ /**
922
+ * URL address to download the initrd.
923
+ */
924
+ initrdUrl: string;
925
+ /**
926
+ * The base directory on the host that contains the /boot folder. The host will download boot
927
+ * artifacts into a folder in this directory.
928
+ */
929
+ hostFsMountDir: string;
930
+ }
931
+
932
+ export type DriveType =
933
+ | 'Unknown'
934
+ | 'HDD'
935
+ | 'FDD'
936
+ | 'ODD'
937
+ | 'SSD'
938
+ | 'virtual'
939
+ | 'Multipath'
940
+ | 'iSCSI'
941
+ | 'FC'
942
+ | 'LVM'
943
+ | 'RAID'
944
+ | 'ECKD'
945
+ | 'ECKD (ESE)'
946
+ | 'FBA';
947
+
948
+ export interface Error {
949
+ /**
950
+ * Indicates the type of this object. Will always be 'Error'.
951
+ */
952
+ kind: 'Error';
953
+ /**
954
+ * Numeric identifier of the error.
955
+ */
956
+ id: number; // int32
957
+ /**
958
+ * Self link.
959
+ */
960
+ href: string;
961
+ /**
962
+ * Globally unique code of the error, composed of the unique identifier of the API and the numeric identifier of the error. For example, if the numeric identifier of the error is 93 and the identifier of the API is assistedInstall then the code will be ASSISTED-INSTALL-93.
963
+ */
964
+ code: string;
965
+ /**
966
+ * Human-readable description of the error.
967
+ */
968
+ reason: string;
969
+ }
970
+
971
+ export interface Event {
972
+ /**
973
+ * Event Name.
974
+ */
975
+ name?: string;
976
+ /**
977
+ * Unique identifier of the cluster this event relates to.
978
+ */
979
+ clusterId?: string; // uuid
980
+ /**
981
+ * Unique identifier of the host this event relates to.
982
+ */
983
+ hostId?: string; // uuid
984
+ /**
985
+ * Unique identifier of the infra-env this event relates to.
986
+ */
987
+ infraEnvId?: string; // uuid
988
+ severity: 'info' | 'warning' | 'error' | 'critical';
989
+ category?: 'user' | 'metrics';
990
+ message: string;
991
+ eventTime: string; // date-time
992
+ /**
993
+ * Unique identifier of the request that caused this event to occur.
994
+ */
995
+ requestId?: string; // uuid
996
+ /**
997
+ * Additional properties for the event in JSON format.
998
+ */
999
+ props?: string;
1000
+ }
1001
+
1002
+ export type EventList = Event[];
1003
+
1004
+ /**
1005
+ * (DEPRECATED) List of features attached to openshift version
1006
+ */
1007
+ export interface FeatureSupportLevel {
1008
+ /**
1009
+ * Version of the OpenShift cluster.
1010
+ */
1011
+ openshiftVersion?: string;
1012
+ features?: {
1013
+ /**
1014
+ * (DEPRECATED) The ID of the feature
1015
+ */
1016
+ featureId:
1017
+ | 'ADDITIONAL_NTP_SOURCE'
1018
+ | 'REQUESTED_HOSTNAME'
1019
+ | 'PROXY'
1020
+ | 'SNO'
1021
+ | 'DAY2_HOSTS'
1022
+ | 'VIP_AUTO_ALLOC'
1023
+ | 'DISK_SELECTION'
1024
+ | 'OVN_NETWORK_TYPE'
1025
+ | 'SDN_NETWORK_TYPE'
1026
+ | 'PLATFORM_SELECTION'
1027
+ | 'SCHEDULABLE_MASTERS'
1028
+ | 'AUTO_ASSIGN_ROLE'
1029
+ | 'CUSTOM_MANIFEST'
1030
+ | 'DISK_ENCRYPTION'
1031
+ | 'CLUSTER_MANAGED_NETWORKING_WITH_VMS'
1032
+ | 'ARM64_ARCHITECTURE'
1033
+ | 'ARM64_ARCHITECTURE_WITH_CLUSTER_MANAGED_NETWORKING'
1034
+ | 'PPC64LE_ARCHITECTURE'
1035
+ | 'S390X_ARCHITECTURE'
1036
+ | 'SINGLE_NODE_EXPANSION'
1037
+ | 'LVM'
1038
+ | 'DUAL_STACK_NETWORKING'
1039
+ | 'MULTIARCH_RELEASE_IMAGE'
1040
+ | 'NUTANIX_INTEGRATION'
1041
+ | 'DUAL_STACK_VIPS'
1042
+ | 'USER_MANAGED_NETWORKING_WITH_MULTI_NODE';
1043
+ supportLevel: SupportLevel;
1044
+ }[];
1045
+ }
1046
+
1047
+ export type FeatureSupportLevelId =
1048
+ | 'SNO'
1049
+ | 'VIP_AUTO_ALLOC'
1050
+ | 'CUSTOM_MANIFEST'
1051
+ | 'SINGLE_NODE_EXPANSION'
1052
+ | 'LVM'
1053
+ | 'ODF'
1054
+ | 'LSO'
1055
+ | 'CNV'
1056
+ | 'MCE'
1057
+ | 'NUTANIX_INTEGRATION'
1058
+ | 'VSPHERE_INTEGRATION'
1059
+ | 'DUAL_STACK_VIPS'
1060
+ | 'CLUSTER_MANAGED_NETWORKING'
1061
+ | 'USER_MANAGED_NETWORKING'
1062
+ | 'MINIMAL_ISO'
1063
+ | 'FULL_ISO'
1064
+ | 'EXTERNAL_PLATFORM_OCI'
1065
+ | 'DUAL_STACK';
1066
+ /**
1067
+ * (DEPRECATED) List of objects that containing a list of feature-support level and attached to openshift-version
1068
+ */
1069
+ export type FeatureSupportLevels = FeatureSupportLevel[];
1070
+ export type FreeAddressesList = string /* ipv4 */[];
1071
+ export type FreeAddressesRequest =
1072
+ string /* ^([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]|[1-2][0-9]|3[0-2]?$ */[];
1073
+
1074
+ export interface FreeNetworkAddresses {
1075
+ network?: string; // ^([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]|[1-2][0-9]|3[0-2]?$
1076
+ freeAddresses?: string /* ipv4 */[];
1077
+ }
1078
+
1079
+ export type FreeNetworksAddresses = FreeNetworkAddresses[];
1080
+
1081
+ export interface Gpu {
1082
+ /**
1083
+ * The name of the device vendor (for example "Intel Corporation")
1084
+ */
1085
+ vendor?: string;
1086
+ /**
1087
+ * ID of the vendor (for example "8086")
1088
+ */
1089
+ vendorId?: string;
1090
+ /**
1091
+ * ID of the device (for example "3ea0")
1092
+ */
1093
+ deviceId?: string;
1094
+ /**
1095
+ * Product name of the device (for example "UHD Graphics 620 (Whiskey Lake)")
1096
+ */
1097
+ name?: string;
1098
+ /**
1099
+ * Device address (for example "0000:00:02.0")
1100
+ */
1101
+ address?: string;
1102
+ }
1103
+
1104
+ export interface Host {
1105
+ /**
1106
+ * Indicates the type of this object. Will be 'Host' if this is a complete object or 'HostLink' if it is just a link, or
1107
+ * 'AddToExistingClusterHost' for host being added to existing OCP cluster, or
1108
+ *
1109
+ */
1110
+ kind: 'Host' | 'AddToExistingClusterHost';
1111
+ /**
1112
+ * Unique identifier of the object.
1113
+ */
1114
+ id: string; // uuid
1115
+ /**
1116
+ * Self link.
1117
+ */
1118
+ href: string;
1119
+ /**
1120
+ * The cluster that this host is associated with.
1121
+ */
1122
+ clusterId?: string; // uuid
1123
+ /**
1124
+ * The infra-env that this host is associated with.
1125
+ */
1126
+ infraEnvId?: string; // uuid
1127
+ status:
1128
+ | 'discovering'
1129
+ | 'known'
1130
+ | 'disconnected'
1131
+ | 'insufficient'
1132
+ | 'disabled'
1133
+ | 'preparing-for-installation'
1134
+ | 'preparing-failed'
1135
+ | 'preparing-successful'
1136
+ | 'pending-for-input'
1137
+ | 'installing'
1138
+ | 'installing-in-progress'
1139
+ | 'installing-pending-user-action'
1140
+ | 'resetting-pending-user-action'
1141
+ | 'installed'
1142
+ | 'error'
1143
+ | 'resetting'
1144
+ | 'added-to-existing-cluster'
1145
+ | 'cancelled'
1146
+ | 'binding'
1147
+ | 'unbinding'
1148
+ | 'unbinding-pending-user-action'
1149
+ | 'known-unbound'
1150
+ | 'disconnected-unbound'
1151
+ | 'insufficient-unbound'
1152
+ | 'disabled-unbound'
1153
+ | 'discovering-unbound'
1154
+ | 'reclaiming'
1155
+ | 'reclaiming-rebooting';
1156
+ statusInfo: string;
1157
+ /**
1158
+ * JSON-formatted string containing the validation results for each validation id grouped by category (network, hardware, etc.)
1159
+ */
1160
+ validationsInfo?: string;
1161
+ /**
1162
+ * The progress of log collection or empty if logs are not applicable
1163
+ */
1164
+ logsInfo?: LogsState;
1165
+ /**
1166
+ * The last time that the host status was updated.
1167
+ */
1168
+ statusUpdatedAt?: string; // date-time
1169
+ progress?: HostProgressInfo;
1170
+ /**
1171
+ * Time at which the current progress stage started.
1172
+ */
1173
+ stageStartedAt?: string; // date-time
1174
+ /**
1175
+ * Time at which the current progress stage was last updated.
1176
+ */
1177
+ stageUpdatedAt?: string; // date-time
1178
+ progressStages?: HostStage[];
1179
+ connectivity?: string;
1180
+ /**
1181
+ * Contains a serialized apiVipConnectivityResponse
1182
+ */
1183
+ apiVipConnectivity?: string;
1184
+ tangConnectivity?: string;
1185
+ inventory?: string;
1186
+ freeAddresses?: string;
1187
+ /**
1188
+ * The configured NTP sources on the host.
1189
+ */
1190
+ ntpSources?: string;
1191
+ /**
1192
+ * Additional information about disks, formatted as JSON.
1193
+ */
1194
+ disksInfo?: string;
1195
+ role?: HostRole;
1196
+ suggestedRole?: HostRole;
1197
+ bootstrap?: boolean;
1198
+ logsCollectedAt?: string; // date-time
1199
+ logsStartedAt?: string; // date-time
1200
+ /**
1201
+ * Installer version.
1202
+ */
1203
+ installerVersion?: string;
1204
+ /**
1205
+ * Contains the inventory disk path, This field is replaced by installationDiskId field and used for backward compatability with the old UI.
1206
+ * example:
1207
+ * /dev/sda
1208
+ */
1209
+ installationDiskPath?: string;
1210
+ /**
1211
+ * Contains the inventory disk id to install on.
1212
+ */
1213
+ installationDiskId?: string;
1214
+ updatedAt?: string; // date-time
1215
+ createdAt?: string; // date-time
1216
+ /**
1217
+ * The last time the host's agent communicated with the service.
1218
+ */
1219
+ checkedInAt?: string; // date-time
1220
+ /**
1221
+ * The last time the host's agent tried to register in the service.
1222
+ */
1223
+ registeredAt?: string; // date-time
1224
+ discoveryAgentVersion?: string;
1225
+ requestedHostname?: string;
1226
+ userName?: string;
1227
+ mediaStatus?: 'connected' | 'disconnected';
1228
+ /**
1229
+ * swagger:ignore
1230
+ */
1231
+ deletedAt?: unknown;
1232
+ /**
1233
+ * Json formatted string containing the user overrides for the host's pointer ignition
1234
+ * example:
1235
+ * {"ignition": {"version": "3.1.0"}, "storage": {"files": [{"path": "/tmp/example", "contents": {"source": "data:text/plain;base64,aGVscGltdHJhcHBlZGluYXN3YWdnZXJzcGVj"}}]}}
1236
+ */
1237
+ ignitionConfigOverrides?: string;
1238
+ installerArgs?: string;
1239
+ /**
1240
+ * The time on the host as seconds since the Unix epoch.
1241
+ */
1242
+ timestamp?: number;
1243
+ machineConfigPoolName?: string;
1244
+ /**
1245
+ * Array of image statuses.
1246
+ */
1247
+ imagesStatus?: string;
1248
+ /**
1249
+ * The domain name resolution result.
1250
+ */
1251
+ domainNameResolutions?: string;
1252
+ /**
1253
+ * True if the token to fetch the ignition from ignitionEndpointUrl is set.
1254
+ */
1255
+ ignitionEndpointTokenSet?: boolean;
1256
+ /**
1257
+ * Json containing node's labels.
1258
+ */
1259
+ nodeLabels?: string;
1260
+ /**
1261
+ * A comma-separated list of disks that will be formatted once
1262
+ * installation begins, unless otherwise set to be skipped by
1263
+ * skipFormattingDisks. This means that this list also includes disks
1264
+ * that appear in skipFormattingDisks. This property is managed by the
1265
+ * service and cannot be modified by the user.
1266
+ */
1267
+ disksToBeFormatted?: string;
1268
+ /**
1269
+ * A comma-seperated list of host disks that the service will avoid
1270
+ * formatting.
1271
+ */
1272
+ skipFormattingDisks?: string;
1273
+ }
1274
+
1275
+ export interface HostCreateParams {
1276
+ hostId: string; // uuid
1277
+ discoveryAgentVersion?: string;
1278
+ }
1279
+
1280
+ export interface HostIgnitionParams {
1281
+ config?: string;
1282
+ }
1283
+
1284
+ export type HostList = Host[];
1285
+
1286
+ export interface HostNetwork {
1287
+ cidr?: string;
1288
+ hostIds?: string /* uuid */[];
1289
+ }
1290
+
1291
+ export interface HostProgress {
1292
+ currentStage?: HostStage;
1293
+ progressInfo?: string;
1294
+ }
1295
+
1296
+ export interface HostProgressInfo {
1297
+ installationPercentage?: number;
1298
+ currentStage?: HostStage;
1299
+ progressInfo?: string;
1300
+ /**
1301
+ * Time at which the current progress stage started.
1302
+ */
1303
+ stageStartedAt?: string; // date-time
1304
+ /**
1305
+ * Time at which the current progress stage was last updated.
1306
+ */
1307
+ stageUpdatedAt?: string; // date-time
1308
+ }
1309
+
1310
+ export interface HostRegistrationResponse {
1311
+ /**
1312
+ * Indicates the type of this object. Will be 'Host' if this is a complete object or 'HostLink' if it is just a link, or
1313
+ * 'AddToExistingClusterHost' for host being added to existing OCP cluster, or
1314
+ *
1315
+ */
1316
+ kind: 'Host' | 'AddToExistingClusterHost';
1317
+ /**
1318
+ * Unique identifier of the object.
1319
+ */
1320
+ id: string; // uuid
1321
+ /**
1322
+ * Self link.
1323
+ */
1324
+ href: string;
1325
+ /**
1326
+ * The cluster that this host is associated with.
1327
+ */
1328
+ clusterId?: string; // uuid
1329
+ /**
1330
+ * The infra-env that this host is associated with.
1331
+ */
1332
+ infraEnvId?: string; // uuid
1333
+ status:
1334
+ | 'discovering'
1335
+ | 'known'
1336
+ | 'disconnected'
1337
+ | 'insufficient'
1338
+ | 'disabled'
1339
+ | 'preparing-for-installation'
1340
+ | 'preparing-failed'
1341
+ | 'preparing-successful'
1342
+ | 'pending-for-input'
1343
+ | 'installing'
1344
+ | 'installing-in-progress'
1345
+ | 'installing-pending-user-action'
1346
+ | 'resetting-pending-user-action'
1347
+ | 'installed'
1348
+ | 'error'
1349
+ | 'resetting'
1350
+ | 'added-to-existing-cluster'
1351
+ | 'cancelled'
1352
+ | 'binding'
1353
+ | 'unbinding'
1354
+ | 'unbinding-pending-user-action'
1355
+ | 'known-unbound'
1356
+ | 'disconnected-unbound'
1357
+ | 'insufficient-unbound'
1358
+ | 'disabled-unbound'
1359
+ | 'discovering-unbound'
1360
+ | 'reclaiming'
1361
+ | 'reclaiming-rebooting';
1362
+ statusInfo: string;
1363
+ /**
1364
+ * JSON-formatted string containing the validation results for each validation id grouped by category (network, hardware, etc.)
1365
+ */
1366
+ validationsInfo?: string;
1367
+ /**
1368
+ * The progress of log collection or empty if logs are not applicable
1369
+ */
1370
+ logsInfo?: LogsState;
1371
+ /**
1372
+ * The last time that the host status was updated.
1373
+ */
1374
+ statusUpdatedAt?: string; // date-time
1375
+ progress?: HostProgressInfo;
1376
+ /**
1377
+ * Time at which the current progress stage started.
1378
+ */
1379
+ stageStartedAt?: string; // date-time
1380
+ /**
1381
+ * Time at which the current progress stage was last updated.
1382
+ */
1383
+ stageUpdatedAt?: string; // date-time
1384
+ progressStages?: HostStage[];
1385
+ connectivity?: string;
1386
+ /**
1387
+ * Contains a serialized apiVipConnectivityResponse
1388
+ */
1389
+ apiVipConnectivity?: string;
1390
+ tangConnectivity?: string;
1391
+ inventory?: string;
1392
+ freeAddresses?: string;
1393
+ /**
1394
+ * The configured NTP sources on the host.
1395
+ */
1396
+ ntpSources?: string;
1397
+ /**
1398
+ * Additional information about disks, formatted as JSON.
1399
+ */
1400
+ disksInfo?: string;
1401
+ role?: HostRole;
1402
+ suggestedRole?: HostRole;
1403
+ bootstrap?: boolean;
1404
+ logsCollectedAt?: string; // date-time
1405
+ logsStartedAt?: string; // date-time
1406
+ /**
1407
+ * Installer version.
1408
+ */
1409
+ installerVersion?: string;
1410
+ /**
1411
+ * Contains the inventory disk path, This field is replaced by installationDiskId field and used for backward compatability with the old UI.
1412
+ * example:
1413
+ * /dev/sda
1414
+ */
1415
+ installationDiskPath?: string;
1416
+ /**
1417
+ * Contains the inventory disk id to install on.
1418
+ */
1419
+ installationDiskId?: string;
1420
+ updatedAt?: string; // date-time
1421
+ createdAt?: string; // date-time
1422
+ /**
1423
+ * The last time the host's agent communicated with the service.
1424
+ */
1425
+ checkedInAt?: string; // date-time
1426
+ /**
1427
+ * The last time the host's agent tried to register in the service.
1428
+ */
1429
+ registeredAt?: string; // date-time
1430
+ discoveryAgentVersion?: string;
1431
+ requestedHostname?: string;
1432
+ userName?: string;
1433
+ mediaStatus?: 'connected' | 'disconnected';
1434
+ /**
1435
+ * swagger:ignore
1436
+ */
1437
+ deletedAt?: unknown;
1438
+ /**
1439
+ * Json formatted string containing the user overrides for the host's pointer ignition
1440
+ * example:
1441
+ * {"ignition": {"version": "3.1.0"}, "storage": {"files": [{"path": "/tmp/example", "contents": {"source": "data:text/plain;base64,aGVscGltdHJhcHBlZGluYXN3YWdnZXJzcGVj"}}]}}
1442
+ */
1443
+ ignitionConfigOverrides?: string;
1444
+ installerArgs?: string;
1445
+ /**
1446
+ * The time on the host as seconds since the Unix epoch.
1447
+ */
1448
+ timestamp?: number;
1449
+ machineConfigPoolName?: string;
1450
+ /**
1451
+ * Array of image statuses.
1452
+ */
1453
+ imagesStatus?: string;
1454
+ /**
1455
+ * The domain name resolution result.
1456
+ */
1457
+ domainNameResolutions?: string;
1458
+ /**
1459
+ * True if the token to fetch the ignition from ignitionEndpointUrl is set.
1460
+ */
1461
+ ignitionEndpointTokenSet?: boolean;
1462
+ /**
1463
+ * Json containing node's labels.
1464
+ */
1465
+ nodeLabels?: string;
1466
+ /**
1467
+ * A comma-separated list of disks that will be formatted once
1468
+ * installation begins, unless otherwise set to be skipped by
1469
+ * skipFormattingDisks. This means that this list also includes disks
1470
+ * that appear in skipFormattingDisks. This property is managed by the
1471
+ * service and cannot be modified by the user.
1472
+ */
1473
+ disksToBeFormatted?: string;
1474
+ /**
1475
+ * A comma-seperated list of host disks that the service will avoid
1476
+ * formatting.
1477
+ */
1478
+ skipFormattingDisks?: string;
1479
+ /**
1480
+ * Command for starting the next step runner
1481
+ */
1482
+ nextStepRunnerCommand?: {
1483
+ command?: string;
1484
+ args?: string[];
1485
+ /**
1486
+ * How long in seconds to wait before retrying registration if the command fails
1487
+ */
1488
+ retrySeconds?: number;
1489
+ };
1490
+ }
1491
+
1492
+ export type HostRole = 'auto-assign' | 'master' | 'worker' | 'bootstrap';
1493
+ export type HostRoleUpdateParams = 'auto-assign' | 'master' | 'worker';
1494
+ export type HostStage =
1495
+ | 'Starting installation'
1496
+ | 'Waiting for control plane'
1497
+ | 'Waiting for bootkube'
1498
+ | 'Waiting for controller'
1499
+ | 'Installing'
1500
+ | 'Writing image to disk'
1501
+ | 'Rebooting'
1502
+ | 'Waiting for ignition'
1503
+ | 'Configuring'
1504
+ | 'Joined'
1505
+ | 'Done'
1506
+ | 'Failed';
1507
+
1508
+ export interface HostStaticNetworkConfig {
1509
+ /**
1510
+ * yaml string that can be processed by nmstate
1511
+ */
1512
+ networkYaml?: string;
1513
+ /**
1514
+ * mapping of host macs to logical interfaces used in the network yaml
1515
+ */
1516
+ macInterfaceMap?: MacInterfaceMap;
1517
+ }
1518
+
1519
+ export interface HostTypeHardwareRequirements {
1520
+ /**
1521
+ * Host requirements that can be quantified
1522
+ */
1523
+ quantitative?: ClusterHostRequirementsDetails;
1524
+ /**
1525
+ * Host requirements that cannot be quantified at the time of calculation. Descriptions or formulas of requiements
1526
+ */
1527
+ qualitative?: string[];
1528
+ }
1529
+
1530
+ export interface HostTypeHardwareRequirementsWrapper {
1531
+ /**
1532
+ * Requirements towards a worker node
1533
+ */
1534
+ worker?: HostTypeHardwareRequirements;
1535
+ /**
1536
+ * Requirements towards a master node
1537
+ */
1538
+ master?: HostTypeHardwareRequirements;
1539
+ }
1540
+
1541
+ export interface HostUpdateParams {
1542
+ hostRole?: 'auto-assign' | 'master' | 'worker';
1543
+ hostName?: string;
1544
+ disksSelectedConfig?: DiskConfigParams[];
1545
+ /**
1546
+ * Allows changing the host's skipFormattingDisks parameter
1547
+ */
1548
+ disksSkipFormatting?: DiskSkipFormattingParams[];
1549
+ machineConfigPoolName?: string;
1550
+ /**
1551
+ * A string which will be used as Authorization Bearer token to fetch the ignition from ignitionEndpointUrl.
1552
+ */
1553
+ ignitionEndpointToken?: string;
1554
+ /**
1555
+ * Labels to be added to the corresponding node.
1556
+ */
1557
+ nodeLabels?: NodeLabelParams[];
1558
+ }
1559
+
1560
+ export type HostValidationId =
1561
+ | 'connected'
1562
+ | 'media-connected'
1563
+ | 'has-inventory'
1564
+ | 'has-min-cpu-cores'
1565
+ | 'has-min-valid-disks'
1566
+ | 'has-min-memory'
1567
+ | 'machine-cidr-defined'
1568
+ | 'has-cpu-cores-for-role'
1569
+ | 'has-memory-for-role'
1570
+ | 'hostname-unique'
1571
+ | 'hostname-valid'
1572
+ | 'belongs-to-machine-cidr'
1573
+ | 'ignition-downloadable'
1574
+ | 'belongs-to-majority-group'
1575
+ | 'valid-platform-network-settings'
1576
+ | 'ntp-synced'
1577
+ | 'time-synced-between-host-and-service'
1578
+ | 'container-images-available'
1579
+ | 'lso-requirements-satisfied'
1580
+ | 'ocs-requirements-satisfied'
1581
+ | 'odf-requirements-satisfied'
1582
+ | 'lvm-requirements-satisfied'
1583
+ | 'mce-requirements-satisfied'
1584
+ | 'sufficient-installation-disk-speed'
1585
+ | 'cnv-requirements-satisfied'
1586
+ | 'sufficient-network-latency-requirement-for-role'
1587
+ | 'sufficient-packet-loss-requirement-for-role'
1588
+ | 'has-default-route'
1589
+ | 'api-domain-name-resolved-correctly'
1590
+ | 'api-int-domain-name-resolved-correctly'
1591
+ | 'apps-domain-name-resolved-correctly'
1592
+ | 'release-domain-name-resolved-correctly'
1593
+ | 'compatible-with-cluster-platform'
1594
+ | 'dns-wildcard-not-configured'
1595
+ | 'disk-encryption-requirements-satisfied'
1596
+ | 'non-overlapping-subnets'
1597
+ | 'vsphere-disk-uuid-enabled'
1598
+ | 'compatible-agent'
1599
+ | 'no-skip-installation-disk'
1600
+ | 'no-skip-missing-disk'
1601
+ | 'no-ip-collisions-in-network';
1602
+
1603
+ /**
1604
+ * Explicit ignition endpoint overrides the default ignition endpoint.
1605
+ */
1606
+ export interface IgnitionEndpoint {
1607
+ /**
1608
+ * The URL for the ignition endpoint.
1609
+ */
1610
+ url?: string;
1611
+ /**
1612
+ * base64 encoded CA certficate to be used when contacting the URL via https.
1613
+ */
1614
+ caCertificate?: string;
1615
+ }
1616
+
1617
+ export interface IgnoredValidations {
1618
+ /**
1619
+ * JSON-formatted list of cluster validation IDs that will be ignored for all hosts that belong to this cluster. It may also contain a list with a single string "all" to ignore all cluster validations. Some validations cannot be ignored.
1620
+ */
1621
+ 'cluster-validation-ids'?: string; // string
1622
+ /**
1623
+ * JSON-formatted list of host validation IDs that will be ignored for all hosts that belong to this cluster. It may also contain a list with a single string "all" to ignore all host validations. Some validations cannot be ignored.
1624
+ */
1625
+ 'host-validation-ids'?: string; // string
1626
+ }
1627
+
1628
+ export interface ImageCreateParams {
1629
+ /**
1630
+ * SSH public key for debugging the installation.
1631
+ */
1632
+ sshPublicKey?: string;
1633
+ staticNetworkConfig?: HostStaticNetworkConfig[];
1634
+ /**
1635
+ * Type of image that should be generated.
1636
+ */
1637
+ imageType?: ImageType;
1638
+ }
1639
+
1640
+ export interface ImageInfo {
1641
+ /**
1642
+ * SSH public key for debugging the installation.
1643
+ */
1644
+ sshPublicKey?: string;
1645
+ sizeBytes?: number;
1646
+ downloadUrl?: string;
1647
+ /**
1648
+ * Image generator version.
1649
+ */
1650
+ generatorVersion?: string;
1651
+ createdAt?: string; // date-time
1652
+ expiresAt?: string; // date-time
1653
+ /**
1654
+ * static network configuration string in the format expected by discovery ignition generation
1655
+ */
1656
+ staticNetworkConfig?: string;
1657
+ type?: ImageType;
1658
+ }
1659
+
1660
+ export type ImageType = 'full-iso' | 'minimal-iso';
1661
+
1662
+ export interface ImportClusterParams {
1663
+ /**
1664
+ * OpenShift cluster name.
1665
+ */
1666
+ name: string;
1667
+ /**
1668
+ * The domain name used to reach the OpenShift cluster API.
1669
+ */
1670
+ apiVipDnsname: string;
1671
+ /**
1672
+ * Version of the OpenShift cluster.
1673
+ */
1674
+ openshiftVersion?: string;
1675
+ /**
1676
+ * The id of the OCP cluster, that hosts will be added to
1677
+ */
1678
+ openshiftClusterId: string; // uuid
1679
+ }
1680
+
1681
+ export interface InfraEnv {
1682
+ /**
1683
+ * Indicates the type of this object.
1684
+ */
1685
+ kind: 'InfraEnv';
1686
+ /**
1687
+ * Unique identifier of the object.
1688
+ */
1689
+ id: string; // uuid
1690
+ /**
1691
+ * Self link.
1692
+ */
1693
+ href: string;
1694
+ /**
1695
+ * Version of the OpenShift cluster (used to infer the RHCOS version - temporary until generic logic implemented).
1696
+ */
1697
+ openshiftVersion?: string;
1698
+ /**
1699
+ * Name of the infra-env.
1700
+ */
1701
+ name: string;
1702
+ userName?: string;
1703
+ orgId?: string;
1704
+ emailDomain?: string;
1705
+ proxy?: Proxy;
1706
+ /**
1707
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
1708
+ */
1709
+ additionalNtpSources?: string;
1710
+ /**
1711
+ * SSH public key for debugging the installation.
1712
+ */
1713
+ sshAuthorizedKey?: string;
1714
+ /**
1715
+ * True if the pull secret has been added to the cluster.
1716
+ */
1717
+ pullSecretSet?: boolean;
1718
+ /**
1719
+ * static network configuration string in the format expected by discovery ignition generation.
1720
+ */
1721
+ staticNetworkConfig?: string;
1722
+ type: ImageType;
1723
+ /**
1724
+ * Json formatted string containing the user overrides for the initial ignition config.
1725
+ */
1726
+ ignitionConfigOverride?: string;
1727
+ /**
1728
+ * If set, all hosts that register will be associated with the specified cluster.
1729
+ */
1730
+ clusterId?: string; // uuid
1731
+ sizeBytes?: number;
1732
+ downloadUrl?: string;
1733
+ /**
1734
+ * Image generator version.
1735
+ */
1736
+ generatorVersion?: string;
1737
+ /**
1738
+ * The last time that this infra-env was updated.
1739
+ */
1740
+ updatedAt: string; // date-time
1741
+ createdAt: string; // date-time
1742
+ expiresAt?: string; // date-time
1743
+ /**
1744
+ * The CPU architecture of the image (x86_64/arm64/etc).
1745
+ */
1746
+ cpuArchitecture?: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x';
1747
+ /**
1748
+ * JSON formatted string array representing the discovery image kernel arguments.
1749
+ */
1750
+ kernelArguments?: string;
1751
+ /**
1752
+ * PEM-encoded X.509 certificate bundle. Hosts discovered by this
1753
+ * infra-env will trust the certificates in this bundle. Clusters formed
1754
+ * from the hosts discovered by this infra-env will also trust the
1755
+ * certificates in this bundle.
1756
+ */
1757
+ additionalTrustBundle?: string;
1758
+ }
1759
+
1760
+ export interface InfraEnvCreateParams {
1761
+ /**
1762
+ * Name of the infra-env.
1763
+ */
1764
+ name: string;
1765
+ proxy?: Proxy;
1766
+ /**
1767
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
1768
+ */
1769
+ additionalNtpSources?: string;
1770
+ /**
1771
+ * SSH public key for debugging the installation.
1772
+ */
1773
+ sshAuthorizedKey?: string;
1774
+ /**
1775
+ * The pull secret obtained from Red Hat OpenShift Cluster Manager at console.redhat.com/openshift/install/pull-secret.
1776
+ */
1777
+ pullSecret: string;
1778
+ staticNetworkConfig?: HostStaticNetworkConfig[];
1779
+ imageType?: ImageType;
1780
+ /**
1781
+ * JSON formatted string containing the user overrides for the initial ignition config.
1782
+ */
1783
+ ignitionConfigOverride?: string;
1784
+ /**
1785
+ * If set, all hosts that register will be associated with the specified cluster.
1786
+ */
1787
+ clusterId?: string; // uuid
1788
+ /**
1789
+ * Version of the OpenShift cluster (used to infer the RHCOS version - temporary until generic logic implemented).
1790
+ */
1791
+ openshiftVersion?: string;
1792
+ /**
1793
+ * The CPU architecture of the image (x86_64/arm64/etc).
1794
+ */
1795
+ cpuArchitecture?: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x';
1796
+ kernelArguments?: KernelArguments;
1797
+ /**
1798
+ * PEM-encoded X.509 certificate bundle. Hosts discovered by this
1799
+ * infra-env will trust the certificates in this bundle. Clusters formed
1800
+ * from the hosts discovered by this infra-env will also trust the
1801
+ * certificates in this bundle.
1802
+ */
1803
+ additionalTrustBundle?: string;
1804
+ }
1805
+
1806
+ export type InfraEnvList = InfraEnv[];
1807
+
1808
+ export interface InfraEnvUpdateParams {
1809
+ proxy?: Proxy;
1810
+ /**
1811
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
1812
+ */
1813
+ additionalNtpSources?: string;
1814
+ /**
1815
+ * SSH public key for debugging the installation.
1816
+ */
1817
+ sshAuthorizedKey?: string;
1818
+ /**
1819
+ * The pull secret obtained from Red Hat OpenShift Cluster Manager at console.redhat.com/openshift/install/pull-secret.
1820
+ */
1821
+ pullSecret?: string;
1822
+ staticNetworkConfig?: HostStaticNetworkConfig[];
1823
+ imageType?: ImageType;
1824
+ /**
1825
+ * JSON formatted string containing the user overrides for the initial ignition config.
1826
+ */
1827
+ ignitionConfigOverride?: string;
1828
+ kernelArguments?: KernelArguments;
1829
+ /**
1830
+ * Allows users to change the additionalTrustBundle infra-env field
1831
+ */
1832
+ additionalTrustBundle?: string;
1833
+ }
1834
+
1835
+ export interface InfraError {
1836
+ /**
1837
+ * Numeric identifier of the error.
1838
+ */
1839
+ code: number; // int32
1840
+ /**
1841
+ * Human-readable description of the error.
1842
+ */
1843
+ message: string;
1844
+ }
1845
+
1846
+ export type IngressCertParams = string;
1847
+
1848
+ /**
1849
+ * The virtual IP used for cluster ingress traffic.
1850
+ */
1851
+ export interface IngressVip {
1852
+ /**
1853
+ * The cluster that this VIP is associated with.
1854
+ */
1855
+ clusterId?: string; // uuid
1856
+ /**
1857
+ * The IP address.
1858
+ */
1859
+ ip?: Ip; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
1860
+ /**
1861
+ * Ingress VIP verification result.
1862
+ */
1863
+ verification?: VipVerification;
1864
+ }
1865
+
1866
+ export interface InstallCmdRequest {
1867
+ /**
1868
+ * Cluster id
1869
+ */
1870
+ clusterId: string; // uuid
1871
+ /**
1872
+ * Infra env id
1873
+ */
1874
+ infraEnvId: string; // uuid
1875
+ /**
1876
+ * Host id
1877
+ */
1878
+ hostId: string; // uuid
1879
+ role: HostRole;
1880
+ /**
1881
+ * Boot device to write image on
1882
+ */
1883
+ bootDevice: string;
1884
+ /**
1885
+ * Assisted installer controller image
1886
+ */
1887
+ controllerImage: string; // ^(([a-zA-Z0-9\-\.]+)(:[0-9]+)?\/)?[a-z0-9\._\-\/@]+[?::a-zA-Z0-9_\-.]+$
1888
+ /**
1889
+ * Assisted installer image
1890
+ */
1891
+ installerImage: string; // ^(([a-zA-Z0-9\-\.]+)(:[0-9]+)?\/)?[a-z0-9\._\-\/@]+[?::a-zA-Z0-9_\-.]+$
1892
+ /**
1893
+ * Guaranteed availability of the installed cluster. 'Full' installs a Highly-Available cluster
1894
+ * over multiple master nodes whereas 'None' installs a full cluster over one node.
1895
+ *
1896
+ */
1897
+ highAvailabilityMode?: 'Full' | 'None';
1898
+ proxy?: Proxy;
1899
+ /**
1900
+ * Check CVO status if needed
1901
+ */
1902
+ checkCvo?: boolean;
1903
+ /**
1904
+ * List of disks to format
1905
+ */
1906
+ disksToFormat?: string[];
1907
+ /**
1908
+ * Must-gather images to use
1909
+ */
1910
+ mustGatherImage?: string;
1911
+ /**
1912
+ * Machine config operator image
1913
+ */
1914
+ mcoImage?: string; // ^(([a-zA-Z0-9\-\.]+)(:[0-9]+)?\/)?[a-z0-9\._\-\/@]+[?::a-zA-Z0-9_\-.]+$
1915
+ /**
1916
+ * Version of the OpenShift cluster.
1917
+ */
1918
+ openshiftVersion?: string;
1919
+ /**
1920
+ * List of service ips
1921
+ */
1922
+ serviceIps?: string /* ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))$ */[];
1923
+ /**
1924
+ * Core-os installer addtional args
1925
+ */
1926
+ installerArgs?: string;
1927
+ /**
1928
+ * Skip formatting installation disk
1929
+ */
1930
+ skipInstallationDiskCleanup?: boolean;
1931
+ }
1932
+
1933
+ export interface InstallerArgsParams {
1934
+ /**
1935
+ * List of additional arguments passed to coreos-installer
1936
+ * example:
1937
+ * --append-karg,ip=192.0.2.2::192.0.2.254:255.255.255.0:core0.example.com:enp1s0:none,--save-partindex,1,-n
1938
+ */
1939
+ args?: string[];
1940
+ }
1941
+
1942
+ export interface Interface {
1943
+ ipv6Addresses?: string[];
1944
+ vendor?: string;
1945
+ name?: string;
1946
+ hasCarrier?: boolean;
1947
+ product?: string;
1948
+ mtu?: number;
1949
+ ipv4Addresses?: string[];
1950
+ biosdevname?: string;
1951
+ clientId?: string;
1952
+ macAddress?: string;
1953
+ flags?: string[];
1954
+ speedMbps?: number;
1955
+ type?: string;
1956
+ }
1957
+
1958
+ export interface Inventory {
1959
+ hostname?: string;
1960
+ bmcAddress?: string;
1961
+ interfaces?: Interface[];
1962
+ disks?: Disk[];
1963
+ boot?: Boot;
1964
+ systemVendor?: SystemVendor;
1965
+ bmcV6address?: string;
1966
+ memory?: Memory;
1967
+ cpu?: Cpu;
1968
+ gpus?: Gpu[];
1969
+ routes?: Route[];
1970
+ tpmVersion?: 'none' | '1.2' | '2.0';
1971
+ }
1972
+
1973
+ export interface IoPerf {
1974
+ /**
1975
+ * 99th percentile of fsync duration in milliseconds
1976
+ */
1977
+ syncDuration?: number;
1978
+ }
1979
+
1980
+ export type Ip = string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
1981
+ /**
1982
+ * pair of [operation, argument] specifying the argument and what operation should be applied on it.
1983
+ */
1984
+ export interface KernelArgument {
1985
+ /**
1986
+ * The operation to apply on the kernel argument.
1987
+ */
1988
+ operation?: 'append' | 'replace' | 'delete';
1989
+ /**
1990
+ * Kernel argument can have the form <parameter> or <parameter>=<value>. The following examples should
1991
+ * be supported:
1992
+ * rd.net.timeout.carrier=60
1993
+ * isolcpus=1,2,10-20,100-2000:2/25
1994
+ * quiet
1995
+ * The parsing by the command line parser in linux kernel is much looser and this pattern follows it.
1996
+ *
1997
+ */
1998
+ value?: string; // ^(?:(?:[^ \t\n\r"]+)|(?:"[^"]*"))+$
1999
+ }
2000
+
2001
+ /**
2002
+ * List of kernel arugment objects that define the operations and values to be applied.
2003
+ */
2004
+ export type KernelArguments = KernelArgument[];
2005
+
2006
+ export interface L2Connectivity {
2007
+ outgoingNic?: string;
2008
+ outgoingIpAddress?: string;
2009
+ remoteIpAddress?: string;
2010
+ remoteMac?: string;
2011
+ successful?: boolean;
2012
+ }
2013
+
2014
+ export interface L3Connectivity {
2015
+ outgoingNic?: string;
2016
+ remoteIpAddress?: string;
2017
+ successful?: boolean;
2018
+ /**
2019
+ * Average round trip time in milliseconds.
2020
+ */
2021
+ averageRttMs?: number; // double
2022
+ /**
2023
+ * Percentage of packets lost during connectivity check.
2024
+ */
2025
+ packetLossPercentage?: number; // double
2026
+ }
2027
+
2028
+ export type ListManagedDomains = ManagedDomain[];
2029
+ export type ListManifests = Manifest[];
2030
+
2031
+ export interface ListVersions {
2032
+ versions?: Versions;
2033
+ releaseTag?: string;
2034
+ }
2035
+
2036
+ export interface LogsGatherCmdRequest {
2037
+ /**
2038
+ * Cluster id
2039
+ */
2040
+ clusterId: string; // uuid
2041
+ /**
2042
+ * Infra env id
2043
+ */
2044
+ infraEnvId: string; // uuid
2045
+ /**
2046
+ * Host id
2047
+ */
2048
+ hostId: string; // uuid
2049
+ /**
2050
+ * Host is bootstrap or not
2051
+ */
2052
+ bootstrap: boolean;
2053
+ /**
2054
+ * Run installer gather logs
2055
+ */
2056
+ installerGather: boolean;
2057
+ /**
2058
+ * List of master ips
2059
+ */
2060
+ masterIps?: string /* ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))$ */[];
2061
+ }
2062
+
2063
+ export interface LogsProgressParams {
2064
+ /**
2065
+ * The state of collecting logs.
2066
+ */
2067
+ logsState: LogsState;
2068
+ }
2069
+
2070
+ export type LogsState = 'requested' | 'collecting' | 'completed' | 'timeout' | '';
2071
+ export type LogsType = 'host' | 'controller' | 'all' | '';
2072
+ export type MacInterfaceMap = {
2073
+ /**
2074
+ * mac address present on the host
2075
+ */
2076
+ macAddress?: string; // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
2077
+ /**
2078
+ * nic name used in the yaml, which relates 1:1 to the mac address
2079
+ */
2080
+ logicalNicName?: string;
2081
+ }[];
2082
+
2083
+ /**
2084
+ * A network that all hosts belonging to the cluster should have an interface with IP address in. The VIPs (if exist) belong to this network.
2085
+ */
2086
+ export interface MachineNetwork {
2087
+ /**
2088
+ * The cluster that this network is associated with.
2089
+ */
2090
+ clusterId?: string; // uuid
2091
+ /**
2092
+ * The IP block address pool.
2093
+ */
2094
+ cidr?: Subnet; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
2095
+ }
2096
+
2097
+ export interface ManagedDomain {
2098
+ domain?: string;
2099
+ provider?: 'route53';
2100
+ }
2101
+
2102
+ export interface Manifest {
2103
+ /**
2104
+ * The folder that contains the files. Manifests can be placed in 'manifests' or 'openshift' directories.
2105
+ */
2106
+ folder?: 'manifests' | 'openshift';
2107
+ /**
2108
+ * The file name prefaced by the folder that contains it.
2109
+ */
2110
+ fileName?: string;
2111
+ }
2112
+
2113
+ export interface Memory {
2114
+ physicalBytes?: number;
2115
+ usableBytes?: number;
2116
+ /**
2117
+ * The method by which the physical memory was set
2118
+ */
2119
+ physicalBytesMethod?: MemoryMethod;
2120
+ }
2121
+
2122
+ export type MemoryMethod = 'dmidecode' | 'ghw' | 'meminfo';
2123
+
2124
+ export interface MonitoredOperator {
2125
+ /**
2126
+ * The cluster that this operator is associated with.
2127
+ */
2128
+ clusterId?: string; // uuid
2129
+ /**
2130
+ * Unique name of the operator.
2131
+ */
2132
+ name?: string;
2133
+ /**
2134
+ * Operator version
2135
+ */
2136
+ version?: string;
2137
+ /**
2138
+ * Namespace where to deploy an operator. Only some operators require a namespace.
2139
+ */
2140
+ namespace?: string;
2141
+ /**
2142
+ * The name of the subscription of the operator.
2143
+ */
2144
+ subscriptionName?: string;
2145
+ operatorType?: OperatorType;
2146
+ /**
2147
+ * Blob of operator-dependent parameters that are required for installation.
2148
+ */
2149
+ properties?: string;
2150
+ /**
2151
+ * Positive number represents a timeout in seconds for the operator to be available.
2152
+ */
2153
+ timeoutSeconds?: number;
2154
+ status?: OperatorStatus;
2155
+ /**
2156
+ * Detailed information about the operator state.
2157
+ */
2158
+ statusInfo?: string;
2159
+ /**
2160
+ * Time at which the operator was last updated.
2161
+ */
2162
+ statusUpdatedAt?: string; // date-time
2163
+ }
2164
+
2165
+ export type MonitoredOperatorsList = MonitoredOperator[];
2166
+
2167
+ export interface NextStepCmdRequest {
2168
+ /**
2169
+ * Infra env id
2170
+ */
2171
+ infraEnvId: string; // uuid
2172
+ /**
2173
+ * Host id
2174
+ */
2175
+ hostId: string; // uuid
2176
+ /**
2177
+ * Agent image version
2178
+ */
2179
+ agentVersion: string; // ^(([a-zA-Z0-9\-\.]+)(:[0-9]+)?\/)?[a-z0-9\._\-\/@]+[?::a-zA-Z0-9_\-.]+$
2180
+ }
2181
+
2182
+ export interface NodeLabelParams {
2183
+ /**
2184
+ * The key for the label's key-value pair.
2185
+ */
2186
+ key: string;
2187
+ /**
2188
+ * The value for the label's key-value pair.
2189
+ */
2190
+ value: string;
2191
+ }
2192
+
2193
+ export interface NtpSource {
2194
+ /**
2195
+ * NTP source name or IP.
2196
+ */
2197
+ sourceName?: string;
2198
+ /**
2199
+ * Indication of state of an NTP source.
2200
+ */
2201
+ sourceState?: SourceState;
2202
+ }
2203
+
2204
+ export interface NtpSynchronizationRequest {
2205
+ /**
2206
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
2207
+ */
2208
+ ntpSource: string;
2209
+ }
2210
+
2211
+ export interface NtpSynchronizationResponse {
2212
+ ntpSources?: NtpSource[];
2213
+ }
2214
+
2215
+ export interface OpenshiftVersion {
2216
+ /**
2217
+ * Name of the version to be presented to the user.
2218
+ */
2219
+ displayName: string;
2220
+ /**
2221
+ * Level of support of the version.
2222
+ */
2223
+ supportLevel: 'beta' | 'production' | 'maintenance';
2224
+ /**
2225
+ * Indication that the version is the recommended one.
2226
+ */
2227
+ default?: boolean;
2228
+ /**
2229
+ * Available CPU architectures.
2230
+ */
2231
+ cpuArchitectures: string[];
2232
+ }
2233
+
2234
+ export interface OpenshiftVersions {
2235
+ [name: string]: OpenshiftVersion;
2236
+ }
2237
+
2238
+ export interface OperatorCreateParams {
2239
+ name?: string;
2240
+ /**
2241
+ * Blob of operator-dependent parameters that are required for installation.
2242
+ */
2243
+ properties?: string;
2244
+ }
2245
+
2246
+ export interface OperatorHardwareRequirements {
2247
+ /**
2248
+ * Unique name of the operator. Corresponds to name property of the monitored-operator, i.e. "lso", "cnv", etc.
2249
+ */
2250
+ operatorName?: string;
2251
+ /**
2252
+ * List of other operator unique names that are required to be installed. Corresponds to name property of the monitored-operator, i.e. "lso", "cnv", etc.
2253
+ */
2254
+ dependencies?: string[];
2255
+ requirements?: HostTypeHardwareRequirementsWrapper;
2256
+ }
2257
+
2258
+ export interface OperatorHostRequirements {
2259
+ /**
2260
+ * Name of the operator
2261
+ */
2262
+ operatorName?: string;
2263
+ /**
2264
+ * Host requirements for the operator
2265
+ */
2266
+ requirements?: ClusterHostRequirementsDetails;
2267
+ }
2268
+
2269
+ export interface OperatorMonitorReport {
2270
+ /**
2271
+ * Unique name of the operator.
2272
+ */
2273
+ name?: string;
2274
+ /**
2275
+ * operator version.
2276
+ */
2277
+ version?: string;
2278
+ status?: OperatorStatus;
2279
+ /**
2280
+ * Detailed information about the operator state.
2281
+ */
2282
+ statusInfo?: string;
2283
+ }
2284
+
2285
+ export type OperatorProperties = OperatorProperty[];
2286
+
2287
+ export interface OperatorProperty {
2288
+ /**
2289
+ * Name of the property
2290
+ */
2291
+ name?: string;
2292
+ /**
2293
+ * Type of the property
2294
+ */
2295
+ dataType?: 'boolean' | 'string' | 'integer' | 'float';
2296
+ /**
2297
+ * Indicates whether the property is reqired
2298
+ */
2299
+ mandatory?: boolean;
2300
+ /**
2301
+ * Values to select from
2302
+ */
2303
+ options?: string[];
2304
+ /**
2305
+ * Description of a property
2306
+ */
2307
+ description?: string;
2308
+ /**
2309
+ * Default value for the property
2310
+ */
2311
+ defaultValue?: string;
2312
+ }
2313
+
2314
+ /**
2315
+ * Represents the operator state.
2316
+ */
2317
+ export type OperatorStatus = 'failed' | 'progressing' | 'available';
2318
+ /**
2319
+ * Kind of operator. Different types are monitored by the service differently.
2320
+ */
2321
+ export type OperatorType = 'builtin' | 'olm';
2322
+
2323
+ export interface OsImage {
2324
+ /**
2325
+ * Version of the operating system image
2326
+ * example:
2327
+ * 4.12
2328
+ */
2329
+ openshiftVersion: string;
2330
+ /**
2331
+ * The CPU architecture of the image (x86_64/arm64/etc).
2332
+ */
2333
+ cpuArchitecture: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x';
2334
+ /**
2335
+ * The base OS image used for the discovery iso.
2336
+ */
2337
+ url: string;
2338
+ /**
2339
+ * Build ID of the OS image.
2340
+ */
2341
+ version: string;
2342
+ }
2343
+
2344
+ export type OsImages = OsImage[];
2345
+
2346
+ /**
2347
+ * The configuration for the specific platform upon which to perform the installation.
2348
+ */
2349
+ export interface Platform {
2350
+ type: PlatformType;
2351
+ /**
2352
+ * Used by the service to indicate that the platform-specific components are not included in
2353
+ * OpenShift and must be provided as manifests separately.
2354
+ */
2355
+ readonly isExternal?: boolean;
2356
+ }
2357
+
2358
+ export type PlatformType = 'baremetal' | 'nutanix' | 'vsphere' | 'none' | 'oci';
2359
+
2360
+ export interface PreflightHardwareRequirements {
2361
+ /**
2362
+ * Preflight operators hardware requirements
2363
+ */
2364
+ operators?: OperatorHardwareRequirements[];
2365
+ /**
2366
+ * Preflight OCP requirements
2367
+ */
2368
+ ocp?: HostTypeHardwareRequirementsWrapper;
2369
+ }
2370
+
2371
+ export interface PresignedUrl {
2372
+ /**
2373
+ * Pre-signed URL for downloading the infra-env discovery image.
2374
+ */
2375
+ url: string;
2376
+ /**
2377
+ * Expiration time for the URL token.
2378
+ */
2379
+ expiresAt?: string; // date-time
2380
+ }
2381
+
2382
+ export interface Proxy {
2383
+ /**
2384
+ * A proxy URL to use for creating HTTP connections outside the cluster.
2385
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
2386
+ *
2387
+ */
2388
+ httpProxy?: string;
2389
+ /**
2390
+ * A proxy URL to use for creating HTTPS connections outside the cluster.
2391
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
2392
+ *
2393
+ */
2394
+ httpsProxy?: string;
2395
+ /**
2396
+ * An "*" or a comma-separated list of destination domain names, domains, IP addresses, or other network CIDRs to exclude from proxying.
2397
+ */
2398
+ noProxy?: string;
2399
+ }
2400
+
2401
+ /**
2402
+ * Information sent to the agent for rebooting a host into discovery.
2403
+ */
2404
+ export interface RebootForReclaimRequest {
2405
+ /**
2406
+ * The base directory on the host that contains the /boot folder. The host needs to
2407
+ * chroot into this directory in order to properly reboot.
2408
+ */
2409
+ hostFsMountDir: string;
2410
+ }
2411
+
2412
+ export interface ReleaseImage {
2413
+ /**
2414
+ * Version of the OpenShift cluster.
2415
+ */
2416
+ openshiftVersion: string;
2417
+ /**
2418
+ * (DEPRECATED) The CPU architecture of the image (x86_64/arm64/etc).
2419
+ */
2420
+ cpuArchitecture: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x' | 'multi';
2421
+ /**
2422
+ * List of CPU architectures provided by the image.
2423
+ */
2424
+ cpuArchitectures?: string[];
2425
+ /**
2426
+ * The installation image of the OpenShift cluster.
2427
+ */
2428
+ url: string;
2429
+ /**
2430
+ * OCP version from the release metadata.
2431
+ */
2432
+ version: string;
2433
+ /**
2434
+ * Indication that the version is the recommended one.
2435
+ */
2436
+ default?: boolean;
2437
+ /**
2438
+ * Level of support of the version.
2439
+ */
2440
+ supportLevel?: 'beta' | 'production' | 'maintenance';
2441
+ }
2442
+
2443
+ export type ReleaseImages = ReleaseImage[];
2444
+
2445
+ export interface Route {
2446
+ /**
2447
+ * Interface to which packets for this route will be sent
2448
+ */
2449
+ interface?: string;
2450
+ /**
2451
+ * Gateway address where the packets are sent
2452
+ */
2453
+ gateway?: string;
2454
+ /**
2455
+ * The destination network or destination host
2456
+ */
2457
+ destination?: string;
2458
+ /**
2459
+ * Defines whether this is an IPv4 (4) or IPv6 route (6)
2460
+ */
2461
+ family?: number; // int32
2462
+ /**
2463
+ * Route priority metric
2464
+ */
2465
+ metric?: number; // int32
2466
+ }
2467
+
2468
+ /**
2469
+ * IP address block for service IP blocks.
2470
+ */
2471
+ export interface ServiceNetwork {
2472
+ /**
2473
+ * A network to use for service IP addresses. If you need to access the services from an external network, configure load balancers and routers to manage the traffic.
2474
+ */
2475
+ clusterId?: string; // uuid
2476
+ /**
2477
+ * The IP block address pool.
2478
+ */
2479
+ cidr?: Subnet; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
2480
+ }
2481
+
2482
+ export type SourceState =
2483
+ | 'synced'
2484
+ | 'combined'
2485
+ | 'notCombined'
2486
+ | 'error'
2487
+ | 'variable'
2488
+ | 'unreachable';
2489
+
2490
+ export interface Step {
2491
+ stepType?: StepType;
2492
+ stepId?: string;
2493
+ args?: string[];
2494
+ }
2495
+
2496
+ export interface StepReply {
2497
+ stepType?: StepType;
2498
+ stepId?: string;
2499
+ exitCode?: number;
2500
+ output?: string;
2501
+ error?: string;
2502
+ }
2503
+
2504
+ export type StepType =
2505
+ | 'connectivity-check'
2506
+ | 'execute'
2507
+ | 'inventory'
2508
+ | 'install'
2509
+ | 'free-network-addresses'
2510
+ | 'dhcp-lease-allocate'
2511
+ | 'api-vip-connectivity-check'
2512
+ | 'tang-connectivity-check'
2513
+ | 'ntp-synchronizer'
2514
+ | 'installation-disk-speed-check'
2515
+ | 'container-image-availability'
2516
+ | 'domain-resolution'
2517
+ | 'stop-installation'
2518
+ | 'logs-gather'
2519
+ | 'next-step-runner'
2520
+ | 'upgrade-agent'
2521
+ | 'download-boot-artifacts'
2522
+ | 'reboot-for-reclaim'
2523
+ | 'verify-vips';
2524
+
2525
+ export interface Steps {
2526
+ nextInstructionSeconds?: number;
2527
+ /**
2528
+ * What to do after finishing to run step instructions
2529
+ */
2530
+ postStepAction?: 'exit' | 'continue';
2531
+ instructions?: Step[];
2532
+ }
2533
+
2534
+ export type StepsReply = StepReply[];
2535
+ export type Subnet = string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
2536
+ export type SupportLevel =
2537
+ | 'supported'
2538
+ | 'unsupported'
2539
+ | 'tech-preview'
2540
+ | 'dev-preview'
2541
+ | 'unavailable';
2542
+
2543
+ /**
2544
+ * Map of feature ID or CPU architecture alongside their support level
2545
+ */
2546
+ export interface SupportLevels {
2547
+ [name: string]: SupportLevel;
2548
+ }
2549
+
2550
+ export interface SystemVendor {
2551
+ serialNumber?: string;
2552
+ productName?: string;
2553
+ manufacturer?: string;
2554
+ /**
2555
+ * Whether the machine appears to be a virtual machine or not
2556
+ */
2557
+ virtual?: boolean;
2558
+ }
2559
+
2560
+ export interface TangConnectivityRequest {
2561
+ /**
2562
+ * JSON-formatted string containing additional information regarding tang's configuration
2563
+ */
2564
+ tangServers: string;
2565
+ }
2566
+
2567
+ export interface TangConnectivityResponse {
2568
+ /**
2569
+ * Tang check result.
2570
+ */
2571
+ isSuccess?: boolean;
2572
+ tangServerResponse?: {
2573
+ /**
2574
+ * Tang URL.
2575
+ */
2576
+ tangUrl?: string;
2577
+ /**
2578
+ * Tang response payload.
2579
+ */
2580
+ payload?: string;
2581
+ signatures?: {
2582
+ protected?: string;
2583
+ signature?: string;
2584
+ }[];
2585
+ }[];
2586
+ }
2587
+
2588
+ export interface UpdateManifestParams {
2589
+ /**
2590
+ * The folder for the manifest to modify.
2591
+ */
2592
+ folder: 'manifests' | 'openshift';
2593
+ /**
2594
+ * The file name for the manifest to modify.
2595
+ */
2596
+ fileName: string; // ^[^/]*\.(yaml|yml|json)$
2597
+ /**
2598
+ * The new folder for the manifest. Manifests can be placed in 'manifests' or 'openshift' directories.
2599
+ */
2600
+ updatedFolder?: 'manifests' | 'openshift';
2601
+ /**
2602
+ * The new file name for the manifest.
2603
+ */
2604
+ updatedFileName?: string; // ^[^/]*\.(yaml|yml|json)$
2605
+ /**
2606
+ * The new base64 encoded manifest content.
2607
+ */
2608
+ updatedContent?: string;
2609
+ }
2610
+
2611
+ export interface UpgradeAgentRequest {
2612
+ /**
2613
+ * Full image reference of the image that the agent should upgrade to, for example
2614
+ * `quay.io/registry-proxy.engineering.redhat.com/rh-osbs/openshift4-assisted-installer-agent-rhel8:v1.0.0-142`.
2615
+ *
2616
+ */
2617
+ agentImage?: string;
2618
+ }
2619
+
2620
+ export interface UpgradeAgentResponse {
2621
+ /**
2622
+ * Full image reference of the image that the agent has upgraded to, for example
2623
+ * `quay.io/registry-proxy.engineering.redhat.com/rh-osbs/openshift4-assisted-installer-agent-rhel8:v1.0.0-142`.
2624
+ *
2625
+ */
2626
+ agentImage?: string;
2627
+ result?: UpgradeAgentResult;
2628
+ }
2629
+
2630
+ /**
2631
+ * Agent upgrade result.
2632
+ */
2633
+ export type UpgradeAgentResult = 'success' | 'failure';
2634
+
2635
+ export interface Usage {
2636
+ /**
2637
+ * Unique idenftifier of the feature
2638
+ */
2639
+ id?: string;
2640
+ /**
2641
+ * name of the feature to track
2642
+ */
2643
+ name?: string;
2644
+ /**
2645
+ * additional properties of the feature
2646
+ */
2647
+ data?: {
2648
+ [name: string]: Record<string, unknown>;
2649
+ };
2650
+ }
2651
+
2652
+ export interface V2ClusterUpdateParams {
2653
+ /**
2654
+ * OpenShift cluster name.
2655
+ */
2656
+ name?: string;
2657
+ /**
2658
+ * Base domain of the cluster. All DNS records must be sub-domains of this base and include the cluster name.
2659
+ */
2660
+ baseDnsDomain?: string;
2661
+ /**
2662
+ * IP address block from which Pod IPs are allocated. This block must not overlap with existing physical networks. These IP addresses are used for the Pod network, and if you need to access the Pods from an external network, configure load balancers and routers to manage the traffic.
2663
+ */
2664
+ clusterNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
2665
+ platform?: Platform;
2666
+ /**
2667
+ * The subnet prefix length to assign to each individual node. For example, if clusterNetworkHostPrefix is set to 23, then each node is assigned a /23 subnet out of the given cidr (clusterNetworkCIDR), which allows for 510 (2^(32 - 23) - 2) pod IPs addresses. If you are required to provide access to nodes from an external network, configure load balancers and routers to manage the traffic.
2668
+ */
2669
+ clusterNetworkHostPrefix?: number;
2670
+ /**
2671
+ * The IP address pool to use for service IP addresses. You can enter only one IP address pool. If you need to access the services from an external network, configure load balancers and routers to manage the traffic.
2672
+ */
2673
+ serviceNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
2674
+ /**
2675
+ * (DEPRECATED) The virtual IP used to reach the OpenShift cluster's API.
2676
+ */
2677
+ apiVip?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
2678
+ /**
2679
+ * The virtual IPs used to reach the OpenShift cluster's API. Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at most one IP address per IP stack used). The order of stacks should be the same as order of subnets in Cluster Networks, Service Networks, and Machine Networks.
2680
+ */
2681
+ apiVips?: ApiVip[];
2682
+ /**
2683
+ * (DEPRECATED) The virtual IP used for cluster ingress traffic.
2684
+ */
2685
+ ingressVip?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
2686
+ /**
2687
+ * The virtual IPs used for cluster ingress traffic. Enter one IP address for single-stack clusters, or up to two for dual-stack clusters (at most one IP address per IP stack used). The order of stacks should be the same as order of subnets in Cluster Networks, Service Networks, and Machine Networks.
2688
+ */
2689
+ ingressVips?: IngressVip[];
2690
+ /**
2691
+ * The domain name used to reach the OpenShift cluster API.
2692
+ */
2693
+ apiVipDnsName?: string;
2694
+ /**
2695
+ * A CIDR that all hosts belonging to the cluster should have an interfaces with IP address that belongs to this CIDR. The apiVip belongs to this CIDR.
2696
+ */
2697
+ machineNetworkCidr?: string; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}\/(?:(?:[0-9])|(?:[1-2][0-9])|(?:3[0-2])))|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,})/(?:(?:[0-9])|(?:[1-9][0-9])|(?:1[0-1][0-9])|(?:12[0-8])))$
2698
+ /**
2699
+ * The pull secret obtained from Red Hat OpenShift Cluster Manager at console.redhat.com/openshift/install/pull-secret.
2700
+ */
2701
+ pullSecret?: string;
2702
+ /**
2703
+ * SSH public key for debugging OpenShift nodes.
2704
+ */
2705
+ sshPublicKey?: string;
2706
+ /**
2707
+ * Indicate if virtual IP DHCP allocation mode is enabled.
2708
+ */
2709
+ vipDhcpAllocation?: boolean;
2710
+ /**
2711
+ * A proxy URL to use for creating HTTP connections outside the cluster.
2712
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
2713
+ *
2714
+ */
2715
+ httpProxy?: string;
2716
+ /**
2717
+ * A proxy URL to use for creating HTTPS connections outside the cluster.
2718
+ * http://\<username\>:\<pswd\>@\<ip\>:\<port\>
2719
+ *
2720
+ */
2721
+ httpsProxy?: string;
2722
+ /**
2723
+ * An "*" or a comma-separated list of destination domain names, domains, IP addresses, or other network CIDRs to exclude from proxying.
2724
+ */
2725
+ noProxy?: string;
2726
+ /**
2727
+ * (DEPRECATED) Indicate if the networking is managed by the user.
2728
+ */
2729
+ userManagedNetworking?: boolean;
2730
+ /**
2731
+ * A comma-separated list of NTP sources (name or IP) going to be added to all the hosts.
2732
+ */
2733
+ additionalNtpSource?: string;
2734
+ /**
2735
+ * List of OLM operators to be installed.
2736
+ */
2737
+ olmOperators?: OperatorCreateParams[];
2738
+ /**
2739
+ * Enable/disable hyperthreading on master nodes, worker nodes, or all nodes.
2740
+ */
2741
+ hyperthreading?: 'masters' | 'workers' | 'all' | 'none';
2742
+ /**
2743
+ * The desired network type used.
2744
+ */
2745
+ networkType?: 'OpenShiftSDN' | 'OVNKubernetes';
2746
+ /**
2747
+ * Schedule workloads on masters
2748
+ */
2749
+ schedulableMasters?: boolean;
2750
+ /**
2751
+ * Cluster networks that are associated with this cluster.
2752
+ */
2753
+ clusterNetworks?: ClusterNetwork[];
2754
+ /**
2755
+ * Service networks that are associated with this cluster.
2756
+ */
2757
+ serviceNetworks?: ServiceNetwork[];
2758
+ /**
2759
+ * Machine networks that are associated with this cluster.
2760
+ */
2761
+ machineNetworks?: MachineNetwork[];
2762
+ /**
2763
+ * Installation disks encryption mode and host roles to be applied.
2764
+ */
2765
+ diskEncryption?: DiskEncryption;
2766
+ /**
2767
+ * Explicit ignition endpoint overrides the default ignition endpoint.
2768
+ */
2769
+ ignitionEndpoint?: IgnitionEndpoint;
2770
+ /**
2771
+ * A comma-separated list of tags that are associated to the cluster.
2772
+ */
2773
+ tags?: string;
2774
+ }
2775
+
2776
+ export interface V2Events {
2777
+ clusterId?: string;
2778
+ hostId?: string;
2779
+ hostIds?: string /* uuid */[];
2780
+ infraEnvId?: string;
2781
+ limit?: number;
2782
+ offset?: number;
2783
+ order?: 'ascending' | 'descending';
2784
+ severities?: ('info' | 'warning' | 'error' | 'critical')[];
2785
+ message?: string;
2786
+ deletedHosts?: boolean;
2787
+ clusterLevel?: boolean;
2788
+ categories?: string[];
2789
+ }
2790
+
2791
+ export interface V2InfraEnvs {
2792
+ clusterId?: string;
2793
+ owner?: string;
2794
+ }
2795
+
2796
+ export interface V2SupportLevelsArchitectures {
2797
+ openshiftVersion: string;
2798
+ }
2799
+
2800
+ export interface V2SupportLevelsFeatures {
2801
+ openshiftVersion: string;
2802
+ cpuArchitecture?: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x' | 'multi';
2803
+ }
2804
+
2805
+ /**
2806
+ * Single VIP verification result.
2807
+ */
2808
+ export interface VerifiedVip {
2809
+ vip?: Ip; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
2810
+ vipType?: VipType;
2811
+ verification?: VipVerification;
2812
+ }
2813
+
2814
+ /**
2815
+ * Request to verify single vip.
2816
+ */
2817
+ export interface VerifyVip {
2818
+ vip?: Ip; // ^(?:(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:(?:[0-9a-fA-F]*:[0-9a-fA-F]*){2,}))?$
2819
+ vipType?: VipType;
2820
+ }
2821
+
2822
+ /**
2823
+ * list of vips to be verified.
2824
+ */
2825
+ export type VerifyVipsRequest = VerifyVip[];
2826
+ /**
2827
+ * list of verified vips.
2828
+ */
2829
+ export type VerifyVipsResponse = VerifiedVip[];
2830
+
2831
+ export interface VersionedHostRequirements {
2832
+ /**
2833
+ * Version of the component for which requirements are defined
2834
+ */
2835
+ version?: string;
2836
+ /**
2837
+ * Master node requirements
2838
+ */
2839
+ master?: ClusterHostRequirementsDetails;
2840
+ /**
2841
+ * Worker node requirements
2842
+ */
2843
+ worker?: ClusterHostRequirementsDetails;
2844
+ /**
2845
+ * Single node OpenShift node requirements
2846
+ */
2847
+ sno?: ClusterHostRequirementsDetails;
2848
+ /**
2849
+ * Edge Worker OpenShift node requirements
2850
+ */
2851
+ 'edge-worker'?: ClusterHostRequirementsDetails;
2852
+ }
2853
+
2854
+ export interface Versions {
2855
+ [name: string]: string;
2856
+ }
2857
+
2858
+ /**
2859
+ * The vip type.
2860
+ */
2861
+ export type VipType = 'api' | 'ingress';
2862
+ /**
2863
+ * vip verification result.
2864
+ */
2865
+ export type VipVerification = 'unverified' | 'failed' | 'succeeded';