import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface SksClusterConfig extends cdktf.TerraformMetaArguments { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#addons SksCluster#addons} */ readonly addons?: string[]; /** * Enable automatic upgrading of the control plane version. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#auto_upgrade SksCluster#auto_upgrade} */ readonly autoUpgrade?: boolean | cdktf.IResolvable; /** * The CNI plugin that is to be used. Available options are "calico" or "cilium". Defaults to "calico". Setting empty string will result in a cluster with no CNI. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#cni SksCluster#cni} */ readonly cni?: string; /** * A free-form text describing the cluster. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#description SksCluster#description} */ readonly description?: string; /** * Indicates whether to deploy Karpenter for cluster autoscaling. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#enable_karpenter SksCluster#enable_karpenter} */ readonly enableKarpenter?: boolean | cdktf.IResolvable; /** * ❗ Indicates whether to deploy the Kubernetes network proxy. (may only be set at creation time) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#enable_kube_proxy SksCluster#enable_kube_proxy} */ readonly enableKubeProxy?: boolean | cdktf.IResolvable; /** * Deploy the Exoscale [Cloud Controller Manager](https://github.com/exoscale/exoscale-cloud-controller-manager/) in the control plane (boolean; default: `true`; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#exoscale_ccm SksCluster#exoscale_ccm} */ readonly exoscaleCcm?: boolean | cdktf.IResolvable; /** * Deploy the Exoscale [Container Storage Interface](https://github.com/exoscale/exoscale-csi-driver/) on worker nodes (boolean; default: `false`; requires the CCM to be enabled). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#exoscale_csi SksCluster#exoscale_csi} */ readonly exoscaleCsi?: boolean | cdktf.IResolvable; /** * Feature gates options for the cluster. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#feature_gates SksCluster#feature_gates} */ readonly featureGates?: string[]; /** * A map of key/value labels. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#labels SksCluster#labels} */ readonly labels?: { [key: string]: string; }; /** * Deploy the [Kubernetes Metrics Server](https://github.com/kubernetes-sigs/metrics-server/) in the control plane (boolean; default: `true`; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#metrics_server SksCluster#metrics_server} */ readonly metricsServer?: boolean | cdktf.IResolvable; /** * The SKS cluster name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#name SksCluster#name} */ readonly name: string; /** * The service level of the control plane (`pro` or `starter`; default: `pro`; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#service_level SksCluster#service_level} */ readonly serviceLevel?: string; /** * The version of the control plane (default: latest version available from the API; see `exo compute sks versions` for reference; may only be set at creation time). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#version SksCluster#version} */ readonly version?: string; /** * ❗ The Exoscale [Zone](https://www.exoscale.com/datacenters/) name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#zone SksCluster#zone} */ readonly zone: string; /** * audit block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#audit SksCluster#audit} */ readonly audit?: SksClusterAudit; /** * oidc block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#oidc SksCluster#oidc} */ readonly oidc?: SksClusterOidc; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#timeouts SksCluster#timeouts} */ readonly timeouts?: SksClusterTimeouts; } export interface SksClusterAudit { /** * The optional bearer token to include in the request header * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#bearer_token SksCluster#bearer_token} */ readonly bearerToken?: string; /** * Whether to run the APIServer with the configured Kubernetes Audit * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#enabled SksCluster#enabled} */ readonly enabled?: boolean | cdktf.IResolvable; /** * The Endpoint URL for the Webserver responsible of processing Audit events * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#endpoint SksCluster#endpoint} */ readonly endpoint?: string; /** * The Initial Backoff to wait before sending data to the remote server (default '10s') * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#initial_backoff SksCluster#initial_backoff} */ readonly initialBackoff?: string; } export declare function sksClusterAuditToTerraform(struct?: SksClusterAuditOutputReference | SksClusterAudit): any; export declare function sksClusterAuditToHclTerraform(struct?: SksClusterAuditOutputReference | SksClusterAudit): any; export declare class SksClusterAuditOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): SksClusterAudit | undefined; set internalValue(value: SksClusterAudit | undefined); private _bearerToken?; get bearerToken(): string; set bearerToken(value: string); resetBearerToken(): void; get bearerTokenInput(): string; private _enabled?; get enabled(): boolean | cdktf.IResolvable; set enabled(value: boolean | cdktf.IResolvable); resetEnabled(): void; get enabledInput(): any; private _endpoint?; get endpoint(): string; set endpoint(value: string); resetEndpoint(): void; get endpointInput(): string; private _initialBackoff?; get initialBackoff(): string; set initialBackoff(value: string); resetInitialBackoff(): void; get initialBackoffInput(): string; } export interface SksClusterOidc { /** * The OpenID client ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#client_id SksCluster#client_id} */ readonly clientId: string; /** * An OpenID JWT claim to use as the user's group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#groups_claim SksCluster#groups_claim} */ readonly groupsClaim?: string; /** * An OpenID prefix prepended to group claims. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#groups_prefix SksCluster#groups_prefix} */ readonly groupsPrefix?: string; /** * The OpenID provider URL. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#issuer_url SksCluster#issuer_url} */ readonly issuerUrl: string; /** * A map of key/value pairs that describes a required claim in the OpenID Token. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#required_claim SksCluster#required_claim} */ readonly requiredClaim?: { [key: string]: string; }; /** * An OpenID JWT claim to use as the user name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#username_claim SksCluster#username_claim} */ readonly usernameClaim?: string; /** * An OpenID prefix prepended to username claims. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#username_prefix SksCluster#username_prefix} */ readonly usernamePrefix?: string; } export declare function sksClusterOidcToTerraform(struct?: SksClusterOidcOutputReference | SksClusterOidc): any; export declare function sksClusterOidcToHclTerraform(struct?: SksClusterOidcOutputReference | SksClusterOidc): any; export declare class SksClusterOidcOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): SksClusterOidc | undefined; set internalValue(value: SksClusterOidc | undefined); private _clientId?; get clientId(): string; set clientId(value: string); get clientIdInput(): string; private _groupsClaim?; get groupsClaim(): string; set groupsClaim(value: string); resetGroupsClaim(): void; get groupsClaimInput(): string; private _groupsPrefix?; get groupsPrefix(): string; set groupsPrefix(value: string); resetGroupsPrefix(): void; get groupsPrefixInput(): string; private _issuerUrl?; get issuerUrl(): string; set issuerUrl(value: string); get issuerUrlInput(): string; private _requiredClaim?; get requiredClaim(): { [key: string]: string; }; set requiredClaim(value: { [key: string]: string; }); resetRequiredClaim(): void; get requiredClaimInput(): { [key: string]: string; }; private _usernameClaim?; get usernameClaim(): string; set usernameClaim(value: string); resetUsernameClaim(): void; get usernameClaimInput(): string; private _usernamePrefix?; get usernamePrefix(): string; set usernamePrefix(value: string); resetUsernamePrefix(): void; get usernamePrefixInput(): string; } export interface SksClusterTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#create SksCluster#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#delete SksCluster#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#read SksCluster#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#update SksCluster#update} */ readonly update?: string; } export declare function sksClusterTimeoutsToTerraform(struct?: SksClusterTimeouts | cdktf.IResolvable): any; export declare function sksClusterTimeoutsToHclTerraform(struct?: SksClusterTimeouts | cdktf.IResolvable): any; export declare class SksClusterTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): SksClusterTimeouts | cdktf.IResolvable | undefined; set internalValue(value: SksClusterTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster exoscale_sks_cluster} */ export declare class SksCluster extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_sks_cluster"; /** * Generates CDKTF code for importing a SksCluster resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the SksCluster to import * @param importFromId The id of the existing SksCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the SksCluster to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/sks_cluster exoscale_sks_cluster} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options SksClusterConfig */ constructor(scope: Construct, id: string, config: SksClusterConfig); private _addons?; get addons(): string[]; set addons(value: string[]); resetAddons(): void; get addonsInput(): string[]; get aggregationCa(): any; private _autoUpgrade?; get autoUpgrade(): boolean | cdktf.IResolvable; set autoUpgrade(value: boolean | cdktf.IResolvable); resetAutoUpgrade(): void; get autoUpgradeInput(): any; private _cni?; get cni(): string; set cni(value: string); resetCni(): void; get cniInput(): string; get controlPlaneCa(): any; get createdAt(): any; private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _enableKarpenter?; get enableKarpenter(): boolean | cdktf.IResolvable; set enableKarpenter(value: boolean | cdktf.IResolvable); resetEnableKarpenter(): void; get enableKarpenterInput(): any; private _enableKubeProxy?; get enableKubeProxy(): boolean | cdktf.IResolvable; set enableKubeProxy(value: boolean | cdktf.IResolvable); resetEnableKubeProxy(): void; get enableKubeProxyInput(): any; get endpoint(): any; private _exoscaleCcm?; get exoscaleCcm(): boolean | cdktf.IResolvable; set exoscaleCcm(value: boolean | cdktf.IResolvable); resetExoscaleCcm(): void; get exoscaleCcmInput(): any; private _exoscaleCsi?; get exoscaleCsi(): boolean | cdktf.IResolvable; set exoscaleCsi(value: boolean | cdktf.IResolvable); resetExoscaleCsi(): void; get exoscaleCsiInput(): any; private _featureGates?; get featureGates(): string[]; set featureGates(value: string[]); resetFeatureGates(): void; get featureGatesInput(): string[]; get id(): any; get kubeletCa(): any; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; }; private _metricsServer?; get metricsServer(): boolean | cdktf.IResolvable; set metricsServer(value: boolean | cdktf.IResolvable); resetMetricsServer(): void; get metricsServerInput(): any; private _name?; get name(): string; set name(value: string); get nameInput(): string; get nodepools(): any; private _serviceLevel?; get serviceLevel(): string; set serviceLevel(value: string); resetServiceLevel(): void; get serviceLevelInput(): string; get state(): any; private _version?; get version(): string; set version(value: string); resetVersion(): void; get versionInput(): string; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; private _audit; get audit(): SksClusterAuditOutputReference; putAudit(value: SksClusterAudit): void; resetAudit(): void; get auditInput(): SksClusterAudit; private _oidc; get oidc(): SksClusterOidcOutputReference; putOidc(value: SksClusterOidc): void; resetOidc(): void; get oidcInput(): SksClusterOidc; private _timeouts; get timeouts(): SksClusterTimeoutsOutputReference; putTimeouts(value: SksClusterTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }