import {z} from 'zod' export type ServicePort = {number?: number | undefined, name?: string | undefined, kubernetesNodePort?: number | undefined}; export type WorkloadProxy = {controlPlaneAddress?: string | undefined, envoyVersion?: string | undefined, istioVersion?: string | undefined, status?: {[key: string]: string} | undefined}; export type V2Workload = {address?: string | undefined, name?: string | undefined, isVm?: boolean | undefined, proxy?: WorkloadProxy | undefined}; export type Tsbv2Service = {hostname?: string | undefined, namespace?: string | undefined, selector?: {[key: string]: string} | undefined, ports?: Array | undefined, kubernetesServiceIp?: string | undefined, kubernetesExternalAddresses?: Array | undefined, numKubernetesEndpoints?: number | undefined, numVmEndpoints?: number | undefined, meshExternal?: boolean | undefined, gatewayHost?: boolean | undefined, numHops?: number | undefined, kubernetesServiceFqdn?: string | undefined, name?: string | undefined, subsets?: Array | undefined, canonicalName?: string | undefined, workloads?: Array | undefined, tier1GatewayHost?: boolean | undefined, spiffeIds?: Array | undefined}; export type Tsbv2Namespace = {name?: string | undefined, services?: Array | undefined}; export type V2Locality = {region: string}; export type NamespaceScopingScope = 'GLOBAL' | 'LOCAL'; export type V2NamespaceScoping = {scope?: NamespaceScopingScope | undefined, exceptions?: Array | undefined}; export type ClusterState = {lastSyncTime?: string | undefined, provider?: string | undefined, istioVersions?: Array | undefined, xcpVersion?: string | undefined, tsbCpVersion?: string | undefined, discoveredLocality?: V2Locality | undefined}; export type KeyPairEncoding = 'PEM' | 'JWK'; export type ServiceAccountKeyPair = {id?: string | undefined, publicKey?: string | undefined, privateKey?: string | undefined, encoding?: KeyPairEncoding | undefined, defaultToken?: string | undefined}; export type Tsbv2ServiceAccount = {fqn?: string | undefined, displayName?: string | undefined, etag?: string | undefined, description?: string | undefined, keys?: Array | undefined}; export type Commonv1alpha1Image = {registry?: string | undefined, tag?: string | undefined}; export type InstallkubernetesLocalObjectReference = {name?: string | undefined}; export type InstallkubernetesObjectFieldSelector = {apiVersion?: string | undefined, fieldPath?: string | undefined}; export type Operatorv1alpha1IntOrString = {type?: unknown | undefined, intVal?: number | undefined, strVal?: string | undefined}; export type InstallkubernetesResourceFieldSelector = {containerName?: string | undefined, resource?: string | undefined, divisor?: Operatorv1alpha1IntOrString | undefined}; export type InstallkubernetesConfigMapKeySelector = {localObjectReference?: InstallkubernetesLocalObjectReference | undefined, key?: string | undefined, optional?: boolean | undefined}; export type InstallkubernetesSecretKeySelector = {localObjectReference?: InstallkubernetesLocalObjectReference | undefined, key?: string | undefined, optional?: boolean | undefined}; export type InstallkubernetesEnvVarSource = {fieldRef?: InstallkubernetesObjectFieldSelector | undefined, resourceFieldRef?: InstallkubernetesResourceFieldSelector | undefined, configMapKeyRef?: InstallkubernetesConfigMapKeySelector | undefined, secretKeyRef?: InstallkubernetesSecretKeySelector | undefined}; export type InstallkubernetesEnvVar = {name?: string | undefined, value?: string | undefined, valueFrom?: InstallkubernetesEnvVarSource | undefined}; export type InstallkubernetesNodeSelectorRequirement = {key?: string | undefined, operator?: string | undefined, values?: Array | undefined}; export type InstallkubernetesNodeSelectorTerm = {matchExpressions?: Array | undefined, matchFields?: Array | undefined}; export type InstallkubernetesNodeSelector = {nodeSelectorTerms?: Array | undefined}; export type InstallkubernetesPreferredSchedulingTerm = {weight?: number | undefined, preference?: InstallkubernetesNodeSelectorTerm | undefined}; export type InstallkubernetesNodeAffinity = {requiredDuringSchedulingIgnoredDuringExecution?: InstallkubernetesNodeSelector | undefined, preferredDuringSchedulingIgnoredDuringExecution?: Array | undefined}; export type V1LabelSelectorRequirement = {key?: string | undefined, operator?: string | undefined, values?: Array | undefined}; export type V1LabelSelector = {matchLabels?: {[key: string]: string} | undefined, matchExpressions?: Array | undefined}; export type InstallkubernetesPodAffinityTerm = {labelSelector?: V1LabelSelector | undefined, namespaces?: Array | undefined, topologyKey?: string | undefined}; export type InstallkubernetesWeightedPodAffinityTerm = {weight?: number | undefined, podAffinityTerm?: InstallkubernetesPodAffinityTerm | undefined}; export type InstallkubernetesPodAffinity = {requiredDuringSchedulingIgnoredDuringExecution?: Array | undefined, preferredDuringSchedulingIgnoredDuringExecution?: Array | undefined}; export type InstallkubernetesPodAntiAffinity = {requiredDuringSchedulingIgnoredDuringExecution?: Array | undefined, preferredDuringSchedulingIgnoredDuringExecution?: Array | undefined}; export type InstallkubernetesAffinity = {nodeAffinity?: InstallkubernetesNodeAffinity | undefined, podAffinity?: InstallkubernetesPodAffinity | undefined, podAntiAffinity?: InstallkubernetesPodAntiAffinity | undefined}; export type InstallkubernetesResources = {limits?: {[key: string]: string} | undefined, requests?: {[key: string]: string} | undefined}; export type InstallkubernetesRollingUpdateDeployment = {maxUnavailable?: Operatorv1alpha1IntOrString | undefined, maxSurge?: Operatorv1alpha1IntOrString | undefined}; export type InstallkubernetesDeploymentStrategy = {type?: string | undefined, rollingUpdate?: InstallkubernetesRollingUpdateDeployment | undefined}; export type Corev1Toleration = {key?: string | undefined, operator?: string | undefined, value?: string | undefined, effect?: string | undefined, tolerationSeconds?: unknown | undefined}; export type InstallkubernetesCrossVersionObjectReference = {kind?: string | undefined, name?: string | undefined, apiVersion?: string | undefined}; export type InstallkubernetesObjectMetricSource = {target?: InstallkubernetesCrossVersionObjectReference | undefined, metricName?: string | undefined, targetValue?: Operatorv1alpha1IntOrString | undefined, selector?: V1LabelSelector | undefined, averageValue?: Operatorv1alpha1IntOrString | undefined}; export type InstallkubernetesPodsMetricSource = {metricName?: string | undefined, targetAverageValue?: Operatorv1alpha1IntOrString | undefined, selector?: V1LabelSelector | undefined}; export type InstallkubernetesMetricTarget = {type?: string | undefined, averageUtilization?: number | undefined, averageValue?: Operatorv1alpha1IntOrString | undefined, value?: Operatorv1alpha1IntOrString | undefined}; export type InstallkubernetesResourceMetricSource = {name?: string | undefined, targetAverageUtilization?: Operatorv1alpha1IntOrString | undefined, targetAverageValue?: Operatorv1alpha1IntOrString | undefined, target?: InstallkubernetesMetricTarget | undefined}; export type InstallkubernetesExternalMetricSource = {metricName?: string | undefined, metricSelector?: V1LabelSelector | undefined, targetValue?: Operatorv1alpha1IntOrString | undefined, targetAverageValue?: Operatorv1alpha1IntOrString | undefined}; export type InstallkubernetesMetricSpec = {type?: string | undefined, object?: InstallkubernetesObjectMetricSource | undefined, pods?: InstallkubernetesPodsMetricSource | undefined, resource?: InstallkubernetesResourceMetricSource | undefined, external?: InstallkubernetesExternalMetricSource | undefined}; export type InstallkubernetesHorizontalPodAutoscalerSpec = {minReplicas?: number | undefined, maxReplicas?: number | undefined, metrics?: Array | undefined}; export type InstallkubernetesSELinuxOptions = {user?: string | undefined, role?: string | undefined, type?: string | undefined, level?: string | undefined}; export type InstallkubernetesSysctl = {name?: string | undefined, value?: string | undefined}; export type InstallkubernetesWindowsSecurityContextOptions = {gmsaCredentialSpecName?: string | undefined, gmsaCredentialSpec?: string | undefined, runAsUserName?: string | undefined}; export type InstallkubernetesSeccompProfile = {type?: string | undefined, localhostProfile?: string | undefined}; export type InstallkubernetesPodSecurityContext = {seLinuxOptions?: InstallkubernetesSELinuxOptions | undefined, runAsUser?: number | undefined, runAsNonRoot?: boolean | undefined, supplementalGroups?: Array | undefined, fsGroup?: number | undefined, runAsGroup?: number | undefined, sysctls?: Array | undefined, windowsOptions?: InstallkubernetesWindowsSecurityContextOptions | undefined, fsGroupChangePolicy?: string | undefined, seccompProfile?: InstallkubernetesSeccompProfile | undefined}; export type InstallkubernetesCapabilities = {add?: Array | undefined, drop?: Array | undefined}; export type InstallkubernetesSecurityContext = {capabilities?: InstallkubernetesCapabilities | undefined, privileged?: boolean | undefined, seLinuxOptions?: InstallkubernetesSELinuxOptions | undefined, windowsOptions?: InstallkubernetesWindowsSecurityContextOptions | undefined, runAsUser?: number | undefined, runAsGroup?: number | undefined, runAsNonRoot?: boolean | undefined, readOnlyRootFilesystem?: boolean | undefined, allowPrivilegeEscalation?: boolean | undefined, procMount?: string | undefined, seccompProfile?: InstallkubernetesSeccompProfile | undefined}; export type InstallkubernetesDeployment = {podAnnotations?: {[key: string]: string} | undefined, env?: Array | undefined, affinity?: InstallkubernetesAffinity | undefined, replicaCount?: number | undefined, resources?: InstallkubernetesResources | undefined, strategy?: InstallkubernetesDeploymentStrategy | undefined, tolerations?: Array | undefined, hpaSpec?: InstallkubernetesHorizontalPodAutoscalerSpec | undefined, podSecurityContext?: InstallkubernetesPodSecurityContext | undefined, containerSecurityContext?: InstallkubernetesSecurityContext | undefined}; export type InstallkubernetesServicePort = {name?: string | undefined, protocol?: string | undefined, port?: number | undefined, targetPort?: Operatorv1alpha1IntOrString | undefined, nodePort?: number | undefined}; export type InstallkubernetesService = {annotations?: {[key: string]: string} | undefined, ports?: Array | undefined, type?: string | undefined, labels?: {[key: string]: string} | undefined}; export type InstallkubernetesServiceAccount = {imagePullSecrets?: Array | undefined}; export type K8sObjectOverlayPathValue = {path?: string | undefined, value: unknown}; export type V1alpha1K8sObjectOverlay = {apiVersion?: string | undefined, kind?: string | undefined, name?: string | undefined, patches?: Array | undefined}; export type KubernetesKubernetesComponentSpec = {deployment?: InstallkubernetesDeployment | undefined, service?: InstallkubernetesService | undefined, serviceAccount?: InstallkubernetesServiceAccount | undefined, overlays?: Array | undefined}; export type V1alpha1OpenTelemetryCollector = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevel?: string | undefined}; export type V1alpha1Oap = {streamingLogEnabled?: boolean | undefined, onDemandEnvoyMetricsEnabled?: boolean | undefined, storageIndexMergingEnabled?: boolean | undefined, kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevel?: string | undefined}; export type XCPCentralAuthMode = 'UNKNOWN' | 'MUTUAL_TLS' | 'JWT'; export type CommonConfigProtection = {enableAuthorizedUpdateDeleteOnXcpConfigs?: boolean | undefined, enableAuthorizedCreateUpdateDeleteOnXcpConfigs?: boolean | undefined, authorizedUsers?: Array | undefined}; export type KubernetesCNI = {binaryDirectory?: string | undefined, configurationDirectory?: string | undefined, chained?: boolean | undefined, configurationFileName?: string | undefined, clusterRole?: string | undefined, revision?: string | undefined}; export type KubernetesKubernetesIstioComponentSpec = {deployment?: InstallkubernetesDeployment | undefined, service?: InstallkubernetesService | undefined, serviceAccount?: InstallkubernetesServiceAccount | undefined, CNI?: KubernetesCNI | undefined, overlays?: Array | undefined}; export type V1alpha1Istio = {tsbVersion?: string | undefined, mountInternalWasmExtensions?: boolean | undefined, kubeSpec?: KubernetesKubernetesIstioComponentSpec | undefined, traceSamplingRate?: number | undefined, defaultWorkloadCertTTL?: string | undefined, maxWorkloadCertTTL?: string | undefined, trustDomain?: string | undefined, baseOverlays?: Array | undefined, pilotOverlays?: Array | undefined, cniOverlays?: Array | undefined, logLevels?: {[key: string]: string} | undefined}; export type V1alpha1IstioRevision = {name: string, istio: V1alpha1Istio, disable?: boolean | undefined}; export type V1alpha1IsolationBoundary = {name: string, revisions: Array}; export type Controlplanev1alpha1XCP = {centralAuthMode?: XCPCentralAuthMode | undefined, configProtection?: CommonConfigProtection | undefined, kubeSpec?: KubernetesKubernetesComponentSpec | undefined, revision?: string | undefined, isolationBoundaries?: Array | undefined, enableHttpMeshInternalIdentityPropagation?: boolean | undefined, centralProvidedCaCert?: boolean | undefined, logLevels?: {[key: string]: string} | undefined}; export type BackendRedisSettings = {uri: string}; export type RateLimitServerBackend = {redis?: BackendRedisSettings | undefined}; export type V1alpha1RateLimitServer = {backend: RateLimitServerBackend, domain?: string | undefined, kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type V1alpha1HpaAdapter = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type V1alpha1OnboardingOperator = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevels?: {[key: string]: string} | undefined}; export type V1alpha1OnboardingRepository = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type V1alpha1OnboardingPlaneInstance = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevels?: {[key: string]: string} | undefined}; export type Controlplanev1alpha1OnboardingPlane = {instance?: V1alpha1OnboardingPlaneInstance | undefined}; export type V1alpha1Onboarding = {operator?: V1alpha1OnboardingOperator | undefined, repository?: V1alpha1OnboardingRepository | undefined, plane?: Controlplanev1alpha1OnboardingPlane | undefined}; export type V1alpha1Satellite = {enabled?: boolean | undefined, kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevel?: string | undefined}; export type V1alpha1NGAC = {enabled?: boolean | undefined, kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevels?: {[key: string]: string} | undefined}; export type CommonGitOps = {enabled?: boolean | undefined, reconcileInterval?: string | undefined, batchWindow?: string | undefined, managementplaneRequestTimeout?: string | undefined, reconcileRequestTimeout?: string | undefined, webhookTimeout?: string | undefined}; export type CertManagerSettingsManaged = 'AUTO' | 'EXTERNAL' | 'INTERNAL'; export type CertManagerSettingsCertManagerSpec = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type CertManagerSettingsCertManagerWebhookSpec = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type CertManagerSettingsCertManagerCAInjector = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type KubernetesJob = {podAnnotations?: {[key: string]: string} | undefined, env?: Array | undefined, affinity?: InstallkubernetesAffinity | undefined, tolerations?: Array | undefined, podSecurityContext?: InstallkubernetesPodSecurityContext | undefined, containerSecurityContext?: InstallkubernetesSecurityContext | undefined}; export type KubernetesKubernetesJobComponentSpec = {deployment?: InstallkubernetesDeployment | undefined, service?: InstallkubernetesService | undefined, job?: KubernetesJob | undefined, serviceAccount?: InstallkubernetesServiceAccount | undefined, overlays?: Array | undefined}; export type CertManagerSettingsCertManagerStartupAPICheck = {kubeSpec?: KubernetesKubernetesJobComponentSpec | undefined}; export type CommonCertManagerSettings = {managed?: CertManagerSettingsManaged | undefined, certManagerSpec?: CertManagerSettingsCertManagerSpec | undefined, certManagerWebhookSpec?: CertManagerSettingsCertManagerWebhookSpec | undefined, certManagerCaInjector?: CertManagerSettingsCertManagerCAInjector | undefined, certManagerStartupapicheck?: CertManagerSettingsCertManagerStartupAPICheck | undefined}; export type CommonCustomCertProviderSettings = {csrSignerName: string, caBundleSecretName: string}; export type CommonInternalCertProvider = {certManager?: CommonCertManagerSettings | undefined, custom?: CommonCustomCertProviderSettings | undefined}; export type KubernetesGlobalDeployment = {podAnnotations?: {[key: string]: string} | undefined, env?: Array | undefined, affinity?: InstallkubernetesAffinity | undefined, strategy?: InstallkubernetesDeploymentStrategy | undefined, tolerations?: Array | undefined, podSecurityContext?: InstallkubernetesPodSecurityContext | undefined, containerSecurityContext?: InstallkubernetesSecurityContext | undefined}; export type KubernetesGlobalService = {annotations?: {[key: string]: string} | undefined}; export type KubernetesGlobalJob = {podAnnotations?: {[key: string]: string} | undefined, affinity?: InstallkubernetesAffinity | undefined, tolerations?: Array | undefined, podSecurityContext?: InstallkubernetesPodSecurityContext | undefined, containerSecurityContext?: InstallkubernetesSecurityContext | undefined}; export type KubernetesKubernetesSpec = {deployment?: KubernetesGlobalDeployment | undefined, service?: KubernetesGlobalService | undefined, account?: InstallkubernetesServiceAccount | undefined, job?: KubernetesGlobalJob | undefined}; export type V1alpha1WASMFetcher = {cacheDisableInsecureRegistries?: boolean | undefined, cacheExpiration?: string | undefined, cacheMaxRetries?: number | undefined, cachePurgeInterval?: string | undefined, cacheRequestTimeout?: string | undefined, kubeSpec?: KubernetesKubernetesComponentSpec | undefined, logLevels?: {[key: string]: string} | undefined}; export type V1alpha1Route53Controller = {kubeSpec?: KubernetesKubernetesComponentSpec | undefined}; export type V1alpha1ControlPlaneComponentSet = {collector?: V1alpha1OpenTelemetryCollector | undefined, oap?: V1alpha1Oap | undefined, xcp?: Controlplanev1alpha1XCP | undefined, istio?: V1alpha1Istio | undefined, rateLimitServer?: V1alpha1RateLimitServer | undefined, hpaAdapter?: V1alpha1HpaAdapter | undefined, onboarding?: V1alpha1Onboarding | undefined, satellite?: V1alpha1Satellite | undefined, ngac?: V1alpha1NGAC | undefined, gitops?: CommonGitOps | undefined, internalCertProvider?: CommonInternalCertProvider | undefined, defaultKubeSpec?: KubernetesKubernetesSpec | undefined, wasmfetcher?: V1alpha1WASMFetcher | undefined, defaultLogLevel?: string | undefined, route53Controller?: V1alpha1Route53Controller | undefined}; export type V1alpha1EKSSettings = {useNlbByDefault?: boolean | undefined}; export type V1alpha1Route53SettingsNamespaceSelector = {namespace?: string | undefined, ignoreNamespaces?: string | undefined}; export type Route53SettingsPolicy = 'SYNC' | 'UPSERT_ONLY' | 'CREATE_ONLY'; export type FilterSettingsAWSZoneType = 'NONE' | 'PUBLIC' | 'PRIVATE'; export type Route53SettingsFilterSettings = {annotationFilter?: string | undefined, labelFilter?: string | undefined, excludeDomain?: Array | undefined, zoneType?: FilterSettingsAWSZoneType | undefined, zoneTagFilter?: Array | undefined, zoneIdFilter?: Array | undefined}; export type V1alpha1Route53Settings = {serviceAccountName: string, namespaceSelector?: V1alpha1Route53SettingsNamespaceSelector | undefined, policy?: Route53SettingsPolicy | undefined, domainFilter?: Array | undefined, interval?: string | undefined, ttl?: unknown | undefined, evaluateTargetHealth?: boolean | undefined, filterSettings?: Route53SettingsFilterSettings | undefined}; export type V1alpha1ProviderSettings = {eks?: V1alpha1EKSSettings | undefined, route53?: V1alpha1Route53Settings | undefined}; export type V1alpha1ManagementPlaneSettings = {host: string, port: number, selfSigned?: boolean | undefined, clusterName: string}; export type MeshExpansionSettingsGateway = {host: string, port: number}; export type OnboardingPlaneEndpoint = {hosts: Array, secretName: string}; export type TokenIssuerJwtTokenIssuer = {expiration?: string | undefined}; export type OnboardingPlaneTokenIssuer = {jwt?: TokenIssuerJwtTokenIssuer | undefined}; export type OnboardingPlaneLocalRepository = Record; export type V1alpha1JwtTokenField = {jsonPath: string}; export type V1alpha1JwtTokenFields = {attributes?: V1alpha1JwtTokenField | undefined}; export type V1alpha1JwtIssuer = {issuer: string, jwksUri?: string | undefined, jwks?: string | undefined, shortName: string, tokenFields?: V1alpha1JwtTokenFields | undefined}; export type V1alpha1JwtAuthenticationConfiguration = {issuers?: Array | undefined}; export type V1alpha1WorkloadAuthenticationConfiguration = {jwt?: V1alpha1JwtAuthenticationConfiguration | undefined}; export type V1alpha1WorkloadDeregistrationConfiguration = {propagationDelay?: string | undefined}; export type V1alpha1WorkloadConfiguration = {authentication?: V1alpha1WorkloadAuthenticationConfiguration | undefined, deregistration?: V1alpha1WorkloadDeregistrationConfiguration | undefined}; export type V1alpha1MeshExpansionSettingsOnboardingPlane = {uid?: string | undefined, endpoint: OnboardingPlaneEndpoint, tokenIssuer?: OnboardingPlaneTokenIssuer | undefined, localRepository?: OnboardingPlaneLocalRepository | undefined, workloads?: V1alpha1WorkloadConfiguration | undefined}; export type V1alpha1MeshExpansionSettings = {customGateway?: MeshExpansionSettingsGateway | undefined, onboarding?: V1alpha1MeshExpansionSettingsOnboardingPlane | undefined}; export type ElasticSearchSettingsProtocol = 'https' | 'http'; export type V1alpha1ElasticSearchSettings = {host: string, port: number, protocol?: ElasticSearchSettingsProtocol | undefined, selfSigned?: boolean | undefined, version?: number | undefined}; export type ControlPlaneSpecTelemetryStore = {elastic?: V1alpha1ElasticSearchSettings | undefined}; export type CommonMeshObservabilitySettings = {apiEndpointMetricsEnabled?: boolean | undefined}; export type ControlPlaneSpecMeshObservability = {demoSettings?: CommonMeshObservabilitySettings | undefined, settings?: CommonMeshObservabilitySettings | undefined}; export type V1alpha1ControlPlaneSpec = {hub: string, imagePullSecrets?: Array | undefined, components?: V1alpha1ControlPlaneComponentSet | undefined, providerSettings?: V1alpha1ProviderSettings | undefined, managementPlane: V1alpha1ManagementPlaneSettings, meshExpansion?: V1alpha1MeshExpansionSettings | undefined, telemetryStore: ControlPlaneSpecTelemetryStore, meshObservability?: ControlPlaneSpecMeshObservability | undefined, tier1Cluster?: boolean | undefined}; export type SecretsTSB = {cacert?: string | undefined}; export type SecretsElasticSearch = {username?: string | undefined, password?: string | undefined, cacert?: string | undefined}; export type XCPEdge = {cert?: string | undefined, key?: string | undefined, token?: string | undefined}; export type V1alpha1SecretsXCP = {autoGenerateCerts?: boolean | undefined, rootca?: string | undefined, rootcakey?: string | undefined, edge?: XCPEdge | undefined}; export type SecretsClusterServiceAccount = {clusterFQN?: string | undefined, JWK?: string | undefined, encodedJWK?: string | undefined}; export type V1alpha1Secrets = {tsb?: SecretsTSB | undefined, elasticsearch?: SecretsElasticSearch | undefined, xcp?: V1alpha1SecretsXCP | undefined, clusterServiceAccount?: SecretsClusterServiceAccount | undefined}; export type V1alpha1OperatorDeployment = {affinity?: InstallkubernetesAffinity | undefined, annotations?: {[key: string]: string} | undefined, env?: Array | undefined, podAnnotations?: {[key: string]: string} | undefined, replicaCount?: number | undefined, strategy?: InstallkubernetesDeploymentStrategy | undefined, tolerations?: Array | undefined}; export type V1alpha1OperatorService = {annotations?: {[key: string]: string} | undefined}; export type V1alpha1OperatorServiceAccount = {annotations?: {[key: string]: string} | undefined, imagePullSecrets?: Array | undefined, pullSecret?: string | undefined, pullUsername?: string | undefined, pullPassword?: string | undefined}; export type V1alpha1Operator = {deployment?: V1alpha1OperatorDeployment | undefined, service?: V1alpha1OperatorService | undefined, serviceAccount?: V1alpha1OperatorServiceAccount | undefined}; export type V1alpha1Values = {image?: Commonv1alpha1Image | undefined, spec?: V1alpha1ControlPlaneSpec | undefined, secrets?: V1alpha1Secrets | undefined, operator?: V1alpha1Operator | undefined}; export type ClusterInstallTemplate = {message?: string | undefined, helm?: V1alpha1Values | undefined}; export type V2Cluster = {fqn?: string | undefined, displayName?: string | undefined, etag?: string | undefined, description?: string | undefined, tokenTtl?: string | undefined, network?: string | undefined, tier1Cluster?: boolean | undefined, namespaces?: Array | undefined, labels?: {[key: string]: string} | undefined, locality?: V2Locality | undefined, trustDomain?: string | undefined, namespaceScope?: V2NamespaceScoping | undefined, state?: ClusterState | undefined, serviceAccount?: Tsbv2ServiceAccount | undefined, installTemplate?: ClusterInstallTemplate | undefined}; export type CreateApiV2OrganizationsOrganizationClustersArgs = {organization: string, body: {cluster: V2Cluster, name: string}}; export type CreateApiV2OrganizationsOrganizationClustersOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; export const servicePort = z.object({number: z.number().int().optional(), name: z.string().optional(), kubernetesNodePort: z.number().int().optional()}); export const workloadProxy = z.object({controlPlaneAddress: z.string().optional(), envoyVersion: z.string().optional(), istioVersion: z.string().optional(), status: z.record(z.string(), z.string()).optional()}); export const v2Workload = z.object({address: z.string().optional(), name: z.string().optional(), isVm: z.boolean().optional(), proxy: workloadProxy.optional()}); export const tsbv2Service = z.object({hostname: z.string().optional(), namespace: z.string().optional(), selector: z.record(z.string(), z.string()).optional(), ports: z.array(servicePort).optional(), kubernetesServiceIp: z.string().optional(), kubernetesExternalAddresses: z.array(z.string()).optional(), numKubernetesEndpoints: z.number().int().optional(), numVmEndpoints: z.number().int().optional(), meshExternal: z.boolean().optional(), gatewayHost: z.boolean().optional(), numHops: z.number().int().optional(), kubernetesServiceFqdn: z.string().optional(), name: z.string().optional(), subsets: z.array(z.string()).optional(), canonicalName: z.string().optional(), workloads: z.array(v2Workload).optional(), tier1GatewayHost: z.boolean().optional(), spiffeIds: z.array(z.string()).optional()}); export const tsbv2Namespace = z.object({name: z.string().optional(), services: z.array(tsbv2Service).optional()}); export const v2Locality = z.object({region: z.string()}); export const namespaceScopingScope = z.enum(["GLOBAL", "LOCAL"]); export const v2NamespaceScoping = z.object({scope: namespaceScopingScope.optional(), exceptions: z.array(z.string()).optional()}); export const clusterState = z.object({lastSyncTime: z.string().optional(), provider: z.string().optional(), istioVersions: z.array(z.string()).optional(), xcpVersion: z.string().optional(), tsbCpVersion: z.string().optional(), discoveredLocality: v2Locality.optional()}); export const keyPairEncoding = z.enum(["PEM", "JWK"]); export const serviceAccountKeyPair = z.object({id: z.string().optional(), publicKey: z.string().optional(), privateKey: z.string().optional(), encoding: keyPairEncoding.optional(), defaultToken: z.string().optional()}); export const tsbv2ServiceAccount = z.object({fqn: z.string().optional(), displayName: z.string().optional(), etag: z.string().optional(), description: z.string().optional(), keys: z.array(serviceAccountKeyPair).optional()}); export const commonv1alpha1Image = z.object({registry: z.string().optional(), tag: z.string().optional()}); export const installkubernetesLocalObjectReference = z.object({name: z.string().optional()}); export const installkubernetesObjectFieldSelector = z.object({apiVersion: z.string().optional(), fieldPath: z.string().optional()}); export const operatorv1alpha1IntOrString = z.object({type: z.string().optional(), intVal: z.number().int().optional(), strVal: z.string().optional()}); export const installkubernetesResourceFieldSelector = z.object({containerName: z.string().optional(), resource: z.string().optional(), divisor: operatorv1alpha1IntOrString.optional()}); export const installkubernetesConfigMapKeySelector = z.object({localObjectReference: installkubernetesLocalObjectReference.optional(), key: z.string().optional(), optional: z.boolean().optional()}); export const installkubernetesSecretKeySelector = z.object({localObjectReference: installkubernetesLocalObjectReference.optional(), key: z.string().optional(), optional: z.boolean().optional()}); export const installkubernetesEnvVarSource = z.object({fieldRef: installkubernetesObjectFieldSelector.optional(), resourceFieldRef: installkubernetesResourceFieldSelector.optional(), configMapKeyRef: installkubernetesConfigMapKeySelector.optional(), secretKeyRef: installkubernetesSecretKeySelector.optional()}); export const installkubernetesEnvVar = z.object({name: z.string().optional(), value: z.string().optional(), valueFrom: installkubernetesEnvVarSource.optional()}); export const installkubernetesNodeSelectorRequirement = z.object({key: z.string().optional(), operator: z.string().optional(), values: z.array(z.string()).optional()}); export const installkubernetesNodeSelectorTerm = z.object({matchExpressions: z.array(installkubernetesNodeSelectorRequirement).optional(), matchFields: z.array(installkubernetesNodeSelectorRequirement).optional()}); export const installkubernetesNodeSelector = z.object({nodeSelectorTerms: z.array(installkubernetesNodeSelectorTerm).optional()}); export const installkubernetesPreferredSchedulingTerm = z.object({weight: z.number().int().optional(), preference: installkubernetesNodeSelectorTerm.optional()}); export const installkubernetesNodeAffinity = z.object({requiredDuringSchedulingIgnoredDuringExecution: installkubernetesNodeSelector.optional(), preferredDuringSchedulingIgnoredDuringExecution: z.array(installkubernetesPreferredSchedulingTerm).optional()}); export const v1LabelSelectorRequirement = z.object({key: z.string().optional(), operator: z.string().optional(), values: z.array(z.string()).optional()}); export const v1LabelSelector = z.object({matchLabels: z.record(z.string(), z.string()).optional(), matchExpressions: z.array(v1LabelSelectorRequirement).optional()}); export const installkubernetesPodAffinityTerm = z.object({labelSelector: v1LabelSelector.optional(), namespaces: z.array(z.string()).optional(), topologyKey: z.string().optional()}); export const installkubernetesWeightedPodAffinityTerm = z.object({weight: z.number().int().optional(), podAffinityTerm: installkubernetesPodAffinityTerm.optional()}); export const installkubernetesPodAffinity = z.object({requiredDuringSchedulingIgnoredDuringExecution: z.array(installkubernetesPodAffinityTerm).optional(), preferredDuringSchedulingIgnoredDuringExecution: z.array(installkubernetesWeightedPodAffinityTerm).optional()}); export const installkubernetesPodAntiAffinity = z.object({requiredDuringSchedulingIgnoredDuringExecution: z.array(installkubernetesPodAffinityTerm).optional(), preferredDuringSchedulingIgnoredDuringExecution: z.array(installkubernetesWeightedPodAffinityTerm).optional()}); export const installkubernetesAffinity = z.object({nodeAffinity: installkubernetesNodeAffinity.optional(), podAffinity: installkubernetesPodAffinity.optional(), podAntiAffinity: installkubernetesPodAntiAffinity.optional()}); export const installkubernetesResources = z.object({limits: z.record(z.string(), z.string()).optional(), requests: z.record(z.string(), z.string()).optional()}); export const installkubernetesRollingUpdateDeployment = z.object({maxUnavailable: operatorv1alpha1IntOrString.optional(), maxSurge: operatorv1alpha1IntOrString.optional()}); export const installkubernetesDeploymentStrategy = z.object({type: z.string().optional(), rollingUpdate: installkubernetesRollingUpdateDeployment.optional()}); export const corev1Toleration = z.object({key: z.string().optional(), operator: z.string().optional(), value: z.string().optional(), effect: z.string().optional(), tolerationSeconds: z.string().optional()}); export const installkubernetesCrossVersionObjectReference = z.object({kind: z.string().optional(), name: z.string().optional(), apiVersion: z.string().optional()}); export const installkubernetesObjectMetricSource = z.object({target: installkubernetesCrossVersionObjectReference.optional(), metricName: z.string().optional(), targetValue: operatorv1alpha1IntOrString.optional(), selector: v1LabelSelector.optional(), averageValue: operatorv1alpha1IntOrString.optional()}); export const installkubernetesPodsMetricSource = z.object({metricName: z.string().optional(), targetAverageValue: operatorv1alpha1IntOrString.optional(), selector: v1LabelSelector.optional()}); export const installkubernetesMetricTarget = z.object({type: z.string().optional(), averageUtilization: z.number().int().optional(), averageValue: operatorv1alpha1IntOrString.optional(), value: operatorv1alpha1IntOrString.optional()}); export const installkubernetesResourceMetricSource = z.object({name: z.string().optional(), targetAverageUtilization: operatorv1alpha1IntOrString.optional(), targetAverageValue: operatorv1alpha1IntOrString.optional(), target: installkubernetesMetricTarget.optional()}); export const installkubernetesExternalMetricSource = z.object({metricName: z.string().optional(), metricSelector: v1LabelSelector.optional(), targetValue: operatorv1alpha1IntOrString.optional(), targetAverageValue: operatorv1alpha1IntOrString.optional()}); export const installkubernetesMetricSpec = z.object({type: z.string().optional(), object: installkubernetesObjectMetricSource.optional(), pods: installkubernetesPodsMetricSource.optional(), resource: installkubernetesResourceMetricSource.optional(), external: installkubernetesExternalMetricSource.optional()}); export const installkubernetesHorizontalPodAutoscalerSpec = z.object({minReplicas: z.number().int().optional(), maxReplicas: z.number().int().optional(), metrics: z.array(installkubernetesMetricSpec).optional()}); export const installkubernetesSELinuxOptions = z.object({user: z.string().optional(), role: z.string().optional(), type: z.string().optional(), level: z.string().optional()}); export const installkubernetesSysctl = z.object({name: z.string().optional(), value: z.string().optional()}); export const installkubernetesWindowsSecurityContextOptions = z.object({gmsaCredentialSpecName: z.string().optional(), gmsaCredentialSpec: z.string().optional(), runAsUserName: z.string().optional()}); export const installkubernetesSeccompProfile = z.object({type: z.string().optional(), localhostProfile: z.string().optional()}); export const installkubernetesPodSecurityContext = z.object({seLinuxOptions: installkubernetesSELinuxOptions.optional(), runAsUser: z.number().int().optional(), runAsNonRoot: z.boolean().optional(), supplementalGroups: z.array(z.number().int()).optional(), fsGroup: z.number().int().optional(), runAsGroup: z.number().int().optional(), sysctls: z.array(installkubernetesSysctl).optional(), windowsOptions: installkubernetesWindowsSecurityContextOptions.optional(), fsGroupChangePolicy: z.string().optional(), seccompProfile: installkubernetesSeccompProfile.optional()}); export const installkubernetesCapabilities = z.object({add: z.array(z.string()).optional(), drop: z.array(z.string()).optional()}); export const installkubernetesSecurityContext = z.object({capabilities: installkubernetesCapabilities.optional(), privileged: z.boolean().optional(), seLinuxOptions: installkubernetesSELinuxOptions.optional(), windowsOptions: installkubernetesWindowsSecurityContextOptions.optional(), runAsUser: z.number().int().optional(), runAsGroup: z.number().int().optional(), runAsNonRoot: z.boolean().optional(), readOnlyRootFilesystem: z.boolean().optional(), allowPrivilegeEscalation: z.boolean().optional(), procMount: z.string().optional(), seccompProfile: installkubernetesSeccompProfile.optional()}); export const installkubernetesDeployment = z.object({podAnnotations: z.record(z.string(), z.string()).optional(), env: z.array(installkubernetesEnvVar).optional(), affinity: installkubernetesAffinity.optional(), replicaCount: z.number().int().optional(), resources: installkubernetesResources.optional(), strategy: installkubernetesDeploymentStrategy.optional(), tolerations: z.array(corev1Toleration).optional(), hpaSpec: installkubernetesHorizontalPodAutoscalerSpec.optional(), podSecurityContext: installkubernetesPodSecurityContext.optional(), containerSecurityContext: installkubernetesSecurityContext.optional()}); export const installkubernetesServicePort = z.object({name: z.string().optional(), protocol: z.string().optional(), port: z.number().int().optional(), targetPort: operatorv1alpha1IntOrString.optional(), nodePort: z.number().int().optional()}); export const installkubernetesService = z.object({annotations: z.record(z.string(), z.string()).optional(), ports: z.array(installkubernetesServicePort).optional(), type: z.string().optional(), labels: z.record(z.string(), z.string()).optional()}); export const installkubernetesServiceAccount = z.object({imagePullSecrets: z.array(installkubernetesLocalObjectReference).optional()}); export const k8sObjectOverlayPathValue = z.object({path: z.string().optional(), value: z.unknown()}); export const v1alpha1K8sObjectOverlay = z.object({apiVersion: z.string().optional(), kind: z.string().optional(), name: z.string().optional(), patches: z.array(k8sObjectOverlayPathValue).optional()}); export const kubernetesKubernetesComponentSpec = z.object({deployment: installkubernetesDeployment.optional(), service: installkubernetesService.optional(), serviceAccount: installkubernetesServiceAccount.optional(), overlays: z.array(v1alpha1K8sObjectOverlay).optional()}); export const v1alpha1OpenTelemetryCollector = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevel: z.string().optional()}); export const v1alpha1Oap = z.object({streamingLogEnabled: z.boolean().optional(), onDemandEnvoyMetricsEnabled: z.boolean().optional(), storageIndexMergingEnabled: z.boolean().optional(), kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevel: z.string().optional()}); export const xCPCentralAuthMode = z.enum(["UNKNOWN", "MUTUAL_TLS", "JWT"]); export const commonConfigProtection = z.object({enableAuthorizedUpdateDeleteOnXcpConfigs: z.boolean().optional(), enableAuthorizedCreateUpdateDeleteOnXcpConfigs: z.boolean().optional(), authorizedUsers: z.array(z.string()).optional()}); export const kubernetesCNI = z.object({binaryDirectory: z.string().optional(), configurationDirectory: z.string().optional(), chained: z.boolean().optional(), configurationFileName: z.string().optional(), clusterRole: z.string().optional(), revision: z.string().optional()}); export const kubernetesKubernetesIstioComponentSpec = z.object({deployment: installkubernetesDeployment.optional(), service: installkubernetesService.optional(), serviceAccount: installkubernetesServiceAccount.optional(), CNI: kubernetesCNI.optional(), overlays: z.array(v1alpha1K8sObjectOverlay).optional()}); export const v1alpha1Istio = z.object({tsbVersion: z.string().optional(), mountInternalWasmExtensions: z.boolean().optional(), kubeSpec: kubernetesKubernetesIstioComponentSpec.optional(), traceSamplingRate: z.number().optional(), defaultWorkloadCertTTL: z.string().optional(), maxWorkloadCertTTL: z.string().optional(), trustDomain: z.string().optional(), baseOverlays: z.array(v1alpha1K8sObjectOverlay).optional(), pilotOverlays: z.array(v1alpha1K8sObjectOverlay).optional(), cniOverlays: z.array(v1alpha1K8sObjectOverlay).optional(), logLevels: z.record(z.string(), z.string()).optional()}); export const v1alpha1IstioRevision = z.object({name: z.string(), istio: v1alpha1Istio, disable: z.boolean().optional()}); export const v1alpha1IsolationBoundary = z.object({name: z.string(), revisions: z.array(v1alpha1IstioRevision)}); export const controlplanev1alpha1XCP = z.object({centralAuthMode: xCPCentralAuthMode.optional(), configProtection: commonConfigProtection.optional(), kubeSpec: kubernetesKubernetesComponentSpec.optional(), revision: z.string().optional(), isolationBoundaries: z.array(v1alpha1IsolationBoundary).optional(), enableHttpMeshInternalIdentityPropagation: z.boolean().optional(), centralProvidedCaCert: z.boolean().optional(), logLevels: z.record(z.string(), z.string()).optional()}); export const backendRedisSettings = z.object({uri: z.string()}); export const rateLimitServerBackend = z.object({redis: backendRedisSettings.optional()}); export const v1alpha1RateLimitServer = z.object({backend: rateLimitServerBackend, domain: z.string().optional(), kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const v1alpha1HpaAdapter = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const v1alpha1OnboardingOperator = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevels: z.record(z.string(), z.string()).optional()}); export const v1alpha1OnboardingRepository = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const v1alpha1OnboardingPlaneInstance = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevels: z.record(z.string(), z.string()).optional()}); export const controlplanev1alpha1OnboardingPlane = z.object({instance: v1alpha1OnboardingPlaneInstance.optional()}); export const v1alpha1Onboarding = z.object({operator: v1alpha1OnboardingOperator.optional(), repository: v1alpha1OnboardingRepository.optional(), plane: controlplanev1alpha1OnboardingPlane.optional()}); export const v1alpha1Satellite = z.object({enabled: z.boolean().optional(), kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevel: z.string().optional()}); export const v1alpha1NGAC = z.object({enabled: z.boolean().optional(), kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevels: z.record(z.string(), z.string()).optional()}); export const commonGitOps = z.object({enabled: z.boolean().optional(), reconcileInterval: z.string().optional(), batchWindow: z.string().optional(), managementplaneRequestTimeout: z.string().optional(), reconcileRequestTimeout: z.string().optional(), webhookTimeout: z.string().optional()}); export const certManagerSettingsManaged = z.enum(["AUTO", "EXTERNAL", "INTERNAL"]); export const certManagerSettingsCertManagerSpec = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const certManagerSettingsCertManagerWebhookSpec = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const certManagerSettingsCertManagerCAInjector = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const kubernetesJob = z.object({podAnnotations: z.record(z.string(), z.string()).optional(), env: z.array(installkubernetesEnvVar).optional(), affinity: installkubernetesAffinity.optional(), tolerations: z.array(corev1Toleration).optional(), podSecurityContext: installkubernetesPodSecurityContext.optional(), containerSecurityContext: installkubernetesSecurityContext.optional()}); export const kubernetesKubernetesJobComponentSpec = z.object({deployment: installkubernetesDeployment.optional(), service: installkubernetesService.optional(), job: kubernetesJob.optional(), serviceAccount: installkubernetesServiceAccount.optional(), overlays: z.array(v1alpha1K8sObjectOverlay).optional()}); export const certManagerSettingsCertManagerStartupAPICheck = z.object({kubeSpec: kubernetesKubernetesJobComponentSpec.optional()}); export const commonCertManagerSettings = z.object({managed: certManagerSettingsManaged.optional(), certManagerSpec: certManagerSettingsCertManagerSpec.optional(), certManagerWebhookSpec: certManagerSettingsCertManagerWebhookSpec.optional(), certManagerCaInjector: certManagerSettingsCertManagerCAInjector.optional(), certManagerStartupapicheck: certManagerSettingsCertManagerStartupAPICheck.optional()}); export const commonCustomCertProviderSettings = z.object({csrSignerName: z.string(), caBundleSecretName: z.string()}); export const commonInternalCertProvider = z.object({certManager: commonCertManagerSettings.optional(), custom: commonCustomCertProviderSettings.optional()}); export const kubernetesGlobalDeployment = z.object({podAnnotations: z.record(z.string(), z.string()).optional(), env: z.array(installkubernetesEnvVar).optional(), affinity: installkubernetesAffinity.optional(), strategy: installkubernetesDeploymentStrategy.optional(), tolerations: z.array(corev1Toleration).optional(), podSecurityContext: installkubernetesPodSecurityContext.optional(), containerSecurityContext: installkubernetesSecurityContext.optional()}); export const kubernetesGlobalService = z.object({annotations: z.record(z.string(), z.string()).optional()}); export const kubernetesGlobalJob = z.object({podAnnotations: z.record(z.string(), z.string()).optional(), affinity: installkubernetesAffinity.optional(), tolerations: z.array(corev1Toleration).optional(), podSecurityContext: installkubernetesPodSecurityContext.optional(), containerSecurityContext: installkubernetesSecurityContext.optional()}); export const kubernetesKubernetesSpec = z.object({deployment: kubernetesGlobalDeployment.optional(), service: kubernetesGlobalService.optional(), account: installkubernetesServiceAccount.optional(), job: kubernetesGlobalJob.optional()}); export const v1alpha1WASMFetcher = z.object({cacheDisableInsecureRegistries: z.boolean().optional(), cacheExpiration: z.string().optional(), cacheMaxRetries: z.number().int().optional(), cachePurgeInterval: z.string().optional(), cacheRequestTimeout: z.string().optional(), kubeSpec: kubernetesKubernetesComponentSpec.optional(), logLevels: z.record(z.string(), z.string()).optional()}); export const v1alpha1Route53Controller = z.object({kubeSpec: kubernetesKubernetesComponentSpec.optional()}); export const v1alpha1ControlPlaneComponentSet = z.object({collector: v1alpha1OpenTelemetryCollector.optional(), oap: v1alpha1Oap.optional(), xcp: controlplanev1alpha1XCP.optional(), istio: v1alpha1Istio.optional(), rateLimitServer: v1alpha1RateLimitServer.optional(), hpaAdapter: v1alpha1HpaAdapter.optional(), onboarding: v1alpha1Onboarding.optional(), satellite: v1alpha1Satellite.optional(), ngac: v1alpha1NGAC.optional(), gitops: commonGitOps.optional(), internalCertProvider: commonInternalCertProvider.optional(), defaultKubeSpec: kubernetesKubernetesSpec.optional(), wasmfetcher: v1alpha1WASMFetcher.optional(), defaultLogLevel: z.string().optional(), route53Controller: v1alpha1Route53Controller.optional()}); export const v1alpha1EKSSettings = z.object({useNlbByDefault: z.boolean().optional()}); export const v1alpha1Route53SettingsNamespaceSelector = z.object({namespace: z.string().optional(), ignoreNamespaces: z.string().optional()}); export const route53SettingsPolicy = z.enum(["SYNC", "UPSERT_ONLY", "CREATE_ONLY"]); export const filterSettingsAWSZoneType = z.enum(["NONE", "PUBLIC", "PRIVATE"]); export const route53SettingsFilterSettings = z.object({annotationFilter: z.string().optional(), labelFilter: z.string().optional(), excludeDomain: z.array(z.string()).optional(), zoneType: filterSettingsAWSZoneType.optional(), zoneTagFilter: z.array(z.string()).optional(), zoneIdFilter: z.array(z.string()).optional()}); export const v1alpha1Route53Settings = z.object({serviceAccountName: z.string(), namespaceSelector: v1alpha1Route53SettingsNamespaceSelector.optional(), policy: route53SettingsPolicy.optional(), domainFilter: z.array(z.string()).optional(), interval: z.string().optional(), ttl: z.string().optional(), evaluateTargetHealth: z.boolean().optional(), filterSettings: route53SettingsFilterSettings.optional()}); export const v1alpha1ProviderSettings = z.object({eks: v1alpha1EKSSettings.optional(), route53: v1alpha1Route53Settings.optional()}); export const v1alpha1ManagementPlaneSettings = z.object({host: z.string(), port: z.number().int(), selfSigned: z.boolean().optional(), clusterName: z.string()}); export const meshExpansionSettingsGateway = z.object({host: z.string(), port: z.number().int()}); export const onboardingPlaneEndpoint = z.object({hosts: z.array(z.string()), secretName: z.string()}); export const tokenIssuerJwtTokenIssuer = z.object({expiration: z.string().optional()}); export const onboardingPlaneTokenIssuer = z.object({jwt: tokenIssuerJwtTokenIssuer.optional()}); export const onboardingPlaneLocalRepository = z.object({}); export const v1alpha1JwtTokenField = z.object({jsonPath: z.string()}); export const v1alpha1JwtTokenFields = z.object({attributes: v1alpha1JwtTokenField.optional()}); export const v1alpha1JwtIssuer = z.object({issuer: z.string(), jwksUri: z.string().optional(), jwks: z.string().optional(), shortName: z.string(), tokenFields: v1alpha1JwtTokenFields.optional()}); export const v1alpha1JwtAuthenticationConfiguration = z.object({issuers: z.array(v1alpha1JwtIssuer).optional()}); export const v1alpha1WorkloadAuthenticationConfiguration = z.object({jwt: v1alpha1JwtAuthenticationConfiguration.optional()}); export const v1alpha1WorkloadDeregistrationConfiguration = z.object({propagationDelay: z.string().optional()}); export const v1alpha1WorkloadConfiguration = z.object({authentication: v1alpha1WorkloadAuthenticationConfiguration.optional(), deregistration: v1alpha1WorkloadDeregistrationConfiguration.optional()}); export const v1alpha1MeshExpansionSettingsOnboardingPlane = z.object({uid: z.string().optional(), endpoint: onboardingPlaneEndpoint, tokenIssuer: onboardingPlaneTokenIssuer.optional(), localRepository: onboardingPlaneLocalRepository.optional(), workloads: v1alpha1WorkloadConfiguration.optional()}); export const v1alpha1MeshExpansionSettings = z.object({customGateway: meshExpansionSettingsGateway.optional(), onboarding: v1alpha1MeshExpansionSettingsOnboardingPlane.optional()}); export const elasticSearchSettingsProtocol = z.enum(["https", "http"]); export const v1alpha1ElasticSearchSettings = z.object({host: z.string(), port: z.number().int(), protocol: elasticSearchSettingsProtocol.optional(), selfSigned: z.boolean().optional(), version: z.number().int().optional()}); export const controlPlaneSpecTelemetryStore = z.object({elastic: v1alpha1ElasticSearchSettings.optional()}); export const commonMeshObservabilitySettings = z.object({apiEndpointMetricsEnabled: z.boolean().optional()}); export const controlPlaneSpecMeshObservability = z.object({demoSettings: commonMeshObservabilitySettings.optional(), settings: commonMeshObservabilitySettings.optional()}); export const v1alpha1ControlPlaneSpec = z.object({hub: z.string(), imagePullSecrets: z.array(installkubernetesLocalObjectReference).optional(), components: v1alpha1ControlPlaneComponentSet.optional(), providerSettings: v1alpha1ProviderSettings.optional(), managementPlane: v1alpha1ManagementPlaneSettings, meshExpansion: v1alpha1MeshExpansionSettings.optional(), telemetryStore: controlPlaneSpecTelemetryStore, meshObservability: controlPlaneSpecMeshObservability.optional(), tier1Cluster: z.boolean().optional()}); export const secretsTSB = z.object({cacert: z.string().optional()}); export const secretsElasticSearch = z.object({username: z.string().optional(), password: z.string().optional(), cacert: z.string().optional()}); export const xCPEdge = z.object({cert: z.string().optional(), key: z.string().optional(), token: z.string().optional()}); export const v1alpha1SecretsXCP = z.object({autoGenerateCerts: z.boolean().optional(), rootca: z.string().optional(), rootcakey: z.string().optional(), edge: xCPEdge.optional()}); export const secretsClusterServiceAccount = z.object({clusterFQN: z.string().optional(), JWK: z.string().optional(), encodedJWK: z.string().optional()}); export const v1alpha1Secrets = z.object({tsb: secretsTSB.optional(), elasticsearch: secretsElasticSearch.optional(), xcp: v1alpha1SecretsXCP.optional(), clusterServiceAccount: secretsClusterServiceAccount.optional()}); export const v1alpha1OperatorDeployment = z.object({affinity: installkubernetesAffinity.optional(), annotations: z.record(z.string(), z.string()).optional(), env: z.array(installkubernetesEnvVar).optional(), podAnnotations: z.record(z.string(), z.string()).optional(), replicaCount: z.number().int().optional(), strategy: installkubernetesDeploymentStrategy.optional(), tolerations: z.array(corev1Toleration).optional()}); export const v1alpha1OperatorService = z.object({annotations: z.record(z.string(), z.string()).optional()}); export const v1alpha1OperatorServiceAccount = z.object({annotations: z.record(z.string(), z.string()).optional(), imagePullSecrets: z.array(z.string()).optional(), pullSecret: z.string().optional(), pullUsername: z.string().optional(), pullPassword: z.string().optional()}); export const v1alpha1Operator = z.object({deployment: v1alpha1OperatorDeployment.optional(), service: v1alpha1OperatorService.optional(), serviceAccount: v1alpha1OperatorServiceAccount.optional()}); export const v1alpha1Values = z.object({image: commonv1alpha1Image.optional(), spec: v1alpha1ControlPlaneSpec.optional(), secrets: v1alpha1Secrets.optional(), operator: v1alpha1Operator.optional()}); export const clusterInstallTemplate = z.object({message: z.string().optional(), helm: v1alpha1Values.optional()}); export const v2Cluster = z.object({fqn: z.string().optional(), displayName: z.string().optional(), etag: z.string().optional(), description: z.string().optional(), tokenTtl: z.string().optional(), network: z.string().optional(), tier1Cluster: z.boolean().optional(), namespaces: z.array(tsbv2Namespace).optional(), labels: z.record(z.string(), z.string()).optional(), locality: v2Locality.optional(), trustDomain: z.string().optional(), namespaceScope: v2NamespaceScoping.optional(), state: clusterState.optional(), serviceAccount: tsbv2ServiceAccount.optional(), installTemplate: clusterInstallTemplate.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Creates a new cluster object in TSB. This is needed during cluster onboarding to let the * management plane know about the existence of a cluster. * Once a cluster has been created and fully onboarded, the management plane will manage the * mesh for that cluster and keep this cluster entity up to date with the information that is * reported by the cluster agents. * This method returns the created cluster, that will be continuously updated by the local * cluster agents. This entity can be monitored to have an overview of the resources (namespaces, * services, etc) that are known to be running in the cluster. * * POST /v2/organizations/{organization}/clusters */ export const createApiV2OrganizationsOrganizationClusters = async (args: CreateApiV2OrganizationsOrganizationClustersArgs, options: CreateApiV2OrganizationsOrganizationClustersOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}/v2/organizations/${encodeURIComponent(String(args.organization))}/clusters${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(v2Cluster, await res.json()) };