@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
420 lines (419 loc) • 23.7 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataprocAutoscalingPolicyConfig extends cdktf.TerraformMetaArguments {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#id DataprocAutoscalingPolicy#id}
*
* Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
* If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
*/
readonly id?: string;
/**
* The location where the autoscaling policy should reside.
* The default value is 'global'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#location DataprocAutoscalingPolicy#location}
*/
readonly location?: string;
/**
* The policy id. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_),
* and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between
* 3 and 50 characters.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#policy_id DataprocAutoscalingPolicy#policy_id}
*/
readonly policyId: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#project DataprocAutoscalingPolicy#project}
*/
readonly project?: string;
/**
* basic_algorithm block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#basic_algorithm DataprocAutoscalingPolicy#basic_algorithm}
*/
readonly basicAlgorithm?: DataprocAutoscalingPolicyBasicAlgorithm;
/**
* secondary_worker_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#secondary_worker_config DataprocAutoscalingPolicy#secondary_worker_config}
*/
readonly secondaryWorkerConfig?: DataprocAutoscalingPolicySecondaryWorkerConfig;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#timeouts DataprocAutoscalingPolicy#timeouts}
*/
readonly timeouts?: DataprocAutoscalingPolicyTimeouts;
/**
* worker_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#worker_config DataprocAutoscalingPolicy#worker_config}
*/
readonly workerConfig?: DataprocAutoscalingPolicyWorkerConfig;
}
export interface DataprocAutoscalingPolicyBasicAlgorithmYarnConfig {
/**
* Timeout for YARN graceful decommissioning of Node Managers. Specifies the
* duration to wait for jobs to complete before forcefully removing workers
* (and potentially interrupting jobs). Only applicable to downscaling operations.
*
* Bounds: [0s, 1d].
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#graceful_decommission_timeout DataprocAutoscalingPolicy#graceful_decommission_timeout}
*/
readonly gracefulDecommissionTimeout: string;
/**
* Fraction of average pending memory in the last cooldown period for which to
* remove workers. A scale-down factor of 1 will result in scaling down so that there
* is no available memory remaining after the update (more aggressive scaling).
* A scale-down factor of 0 disables removing workers, which can be beneficial for
* autoscaling a single job.
*
* Bounds: [0.0, 1.0].
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#scale_down_factor DataprocAutoscalingPolicy#scale_down_factor}
*/
readonly scaleDownFactor: number;
/**
* Minimum scale-down threshold as a fraction of total cluster size before scaling occurs.
* For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must
* recommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0
* means the autoscaler will scale down on any recommended change.
*
* Bounds: [0.0, 1.0]. Default: 0.0.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#scale_down_min_worker_fraction DataprocAutoscalingPolicy#scale_down_min_worker_fraction}
*/
readonly scaleDownMinWorkerFraction?: number;
/**
* Fraction of average pending memory in the last cooldown period for which to
* add workers. A scale-up factor of 1.0 will result in scaling up so that there
* is no pending memory remaining after the update (more aggressive scaling).
* A scale-up factor closer to 0 will result in a smaller magnitude of scaling up
* (less aggressive scaling).
*
* Bounds: [0.0, 1.0].
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#scale_up_factor DataprocAutoscalingPolicy#scale_up_factor}
*/
readonly scaleUpFactor: number;
/**
* Minimum scale-up threshold as a fraction of total cluster size before scaling
* occurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler
* must recommend at least a 2-worker scale-up for the cluster to scale. A threshold of
* 0 means the autoscaler will scale up on any recommended change.
*
* Bounds: [0.0, 1.0]. Default: 0.0.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#scale_up_min_worker_fraction DataprocAutoscalingPolicy#scale_up_min_worker_fraction}
*/
readonly scaleUpMinWorkerFraction?: number;
}
export declare function dataprocAutoscalingPolicyBasicAlgorithmYarnConfigToTerraform(struct?: DataprocAutoscalingPolicyBasicAlgorithmYarnConfigOutputReference | DataprocAutoscalingPolicyBasicAlgorithmYarnConfig): any;
export declare function dataprocAutoscalingPolicyBasicAlgorithmYarnConfigToHclTerraform(struct?: DataprocAutoscalingPolicyBasicAlgorithmYarnConfigOutputReference | DataprocAutoscalingPolicyBasicAlgorithmYarnConfig): any;
export declare class DataprocAutoscalingPolicyBasicAlgorithmYarnConfigOutputReference 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(): DataprocAutoscalingPolicyBasicAlgorithmYarnConfig | undefined;
set internalValue(value: DataprocAutoscalingPolicyBasicAlgorithmYarnConfig | undefined);
private _gracefulDecommissionTimeout?;
get gracefulDecommissionTimeout(): string;
set gracefulDecommissionTimeout(value: string);
get gracefulDecommissionTimeoutInput(): string | undefined;
private _scaleDownFactor?;
get scaleDownFactor(): number;
set scaleDownFactor(value: number);
get scaleDownFactorInput(): number | undefined;
private _scaleDownMinWorkerFraction?;
get scaleDownMinWorkerFraction(): number;
set scaleDownMinWorkerFraction(value: number);
resetScaleDownMinWorkerFraction(): void;
get scaleDownMinWorkerFractionInput(): number | undefined;
private _scaleUpFactor?;
get scaleUpFactor(): number;
set scaleUpFactor(value: number);
get scaleUpFactorInput(): number | undefined;
private _scaleUpMinWorkerFraction?;
get scaleUpMinWorkerFraction(): number;
set scaleUpMinWorkerFraction(value: number);
resetScaleUpMinWorkerFraction(): void;
get scaleUpMinWorkerFractionInput(): number | undefined;
}
export interface DataprocAutoscalingPolicyBasicAlgorithm {
/**
* Duration between scaling events. A scaling period starts after the
* update operation from the previous event has completed.
*
* Bounds: [2m, 1d]. Default: 2m.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#cooldown_period DataprocAutoscalingPolicy#cooldown_period}
*/
readonly cooldownPeriod?: string;
/**
* yarn_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#yarn_config DataprocAutoscalingPolicy#yarn_config}
*/
readonly yarnConfig: DataprocAutoscalingPolicyBasicAlgorithmYarnConfig;
}
export declare function dataprocAutoscalingPolicyBasicAlgorithmToTerraform(struct?: DataprocAutoscalingPolicyBasicAlgorithmOutputReference | DataprocAutoscalingPolicyBasicAlgorithm): any;
export declare function dataprocAutoscalingPolicyBasicAlgorithmToHclTerraform(struct?: DataprocAutoscalingPolicyBasicAlgorithmOutputReference | DataprocAutoscalingPolicyBasicAlgorithm): any;
export declare class DataprocAutoscalingPolicyBasicAlgorithmOutputReference 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(): DataprocAutoscalingPolicyBasicAlgorithm | undefined;
set internalValue(value: DataprocAutoscalingPolicyBasicAlgorithm | undefined);
private _cooldownPeriod?;
get cooldownPeriod(): string;
set cooldownPeriod(value: string);
resetCooldownPeriod(): void;
get cooldownPeriodInput(): string | undefined;
private _yarnConfig;
get yarnConfig(): DataprocAutoscalingPolicyBasicAlgorithmYarnConfigOutputReference;
putYarnConfig(value: DataprocAutoscalingPolicyBasicAlgorithmYarnConfig): void;
get yarnConfigInput(): DataprocAutoscalingPolicyBasicAlgorithmYarnConfig | undefined;
}
export interface DataprocAutoscalingPolicySecondaryWorkerConfig {
/**
* Maximum number of instances for this group. Note that by default, clusters will not use
* secondary workers. Required for secondary workers if the minimum secondary instances is set.
* Bounds: [minInstances, ). Defaults to 0.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#max_instances DataprocAutoscalingPolicy#max_instances}
*/
readonly maxInstances?: number;
/**
* Minimum number of instances for this group. Bounds: [0, maxInstances]. Defaults to 0.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#min_instances DataprocAutoscalingPolicy#min_instances}
*/
readonly minInstances?: number;
/**
* Weight for the instance group, which is used to determine the fraction of total workers
* in the cluster from this instance group. For example, if primary workers have weight 2,
* and secondary workers have weight 1, the cluster will have approximately 2 primary workers
* for each secondary worker.
*
* The cluster may not reach the specified balance if constrained by min/max bounds or other
* autoscaling settings. For example, if maxInstances for secondary workers is 0, then only
* primary workers will be added. The cluster can also be out of balance when created.
*
* If weight is not set on any instance group, the cluster will default to equal weight for
* all groups: the cluster will attempt to maintain an equal number of workers in each group
* within the configured size bounds for each group. If weight is set for one group only,
* the cluster will default to zero weight on the unset group. For example if weight is set
* only on primary workers, the cluster will use primary workers only and no secondary workers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#weight DataprocAutoscalingPolicy#weight}
*/
readonly weight?: number;
}
export declare function dataprocAutoscalingPolicySecondaryWorkerConfigToTerraform(struct?: DataprocAutoscalingPolicySecondaryWorkerConfigOutputReference | DataprocAutoscalingPolicySecondaryWorkerConfig): any;
export declare function dataprocAutoscalingPolicySecondaryWorkerConfigToHclTerraform(struct?: DataprocAutoscalingPolicySecondaryWorkerConfigOutputReference | DataprocAutoscalingPolicySecondaryWorkerConfig): any;
export declare class DataprocAutoscalingPolicySecondaryWorkerConfigOutputReference 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(): DataprocAutoscalingPolicySecondaryWorkerConfig | undefined;
set internalValue(value: DataprocAutoscalingPolicySecondaryWorkerConfig | undefined);
private _maxInstances?;
get maxInstances(): number;
set maxInstances(value: number);
resetMaxInstances(): void;
get maxInstancesInput(): number | undefined;
private _minInstances?;
get minInstances(): number;
set minInstances(value: number);
resetMinInstances(): void;
get minInstancesInput(): number | undefined;
private _weight?;
get weight(): number;
set weight(value: number);
resetWeight(): void;
get weightInput(): number | undefined;
}
export interface DataprocAutoscalingPolicyTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#create DataprocAutoscalingPolicy#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#delete DataprocAutoscalingPolicy#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#update DataprocAutoscalingPolicy#update}
*/
readonly update?: string;
}
export declare function dataprocAutoscalingPolicyTimeoutsToTerraform(struct?: DataprocAutoscalingPolicyTimeouts | cdktf.IResolvable): any;
export declare function dataprocAutoscalingPolicyTimeoutsToHclTerraform(struct?: DataprocAutoscalingPolicyTimeouts | cdktf.IResolvable): any;
export declare class DataprocAutoscalingPolicyTimeoutsOutputReference 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(): DataprocAutoscalingPolicyTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: DataprocAutoscalingPolicyTimeouts | cdktf.IResolvable | undefined);
private _create?;
get create(): string;
set create(value: string);
resetCreate(): void;
get createInput(): string | undefined;
private _delete?;
get delete(): string;
set delete(value: string);
resetDelete(): void;
get deleteInput(): string | undefined;
private _update?;
get update(): string;
set update(value: string);
resetUpdate(): void;
get updateInput(): string | undefined;
}
export interface DataprocAutoscalingPolicyWorkerConfig {
/**
* Maximum number of instances for this group.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#max_instances DataprocAutoscalingPolicy#max_instances}
*/
readonly maxInstances: number;
/**
* Minimum number of instances for this group. Bounds: [2, maxInstances]. Defaults to 2.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#min_instances DataprocAutoscalingPolicy#min_instances}
*/
readonly minInstances?: number;
/**
* Weight for the instance group, which is used to determine the fraction of total workers
* in the cluster from this instance group. For example, if primary workers have weight 2,
* and secondary workers have weight 1, the cluster will have approximately 2 primary workers
* for each secondary worker.
*
* The cluster may not reach the specified balance if constrained by min/max bounds or other
* autoscaling settings. For example, if maxInstances for secondary workers is 0, then only
* primary workers will be added. The cluster can also be out of balance when created.
*
* If weight is not set on any instance group, the cluster will default to equal weight for
* all groups: the cluster will attempt to maintain an equal number of workers in each group
* within the configured size bounds for each group. If weight is set for one group only,
* the cluster will default to zero weight on the unset group. For example if weight is set
* only on primary workers, the cluster will use primary workers only and no secondary workers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#weight DataprocAutoscalingPolicy#weight}
*/
readonly weight?: number;
}
export declare function dataprocAutoscalingPolicyWorkerConfigToTerraform(struct?: DataprocAutoscalingPolicyWorkerConfigOutputReference | DataprocAutoscalingPolicyWorkerConfig): any;
export declare function dataprocAutoscalingPolicyWorkerConfigToHclTerraform(struct?: DataprocAutoscalingPolicyWorkerConfigOutputReference | DataprocAutoscalingPolicyWorkerConfig): any;
export declare class DataprocAutoscalingPolicyWorkerConfigOutputReference 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(): DataprocAutoscalingPolicyWorkerConfig | undefined;
set internalValue(value: DataprocAutoscalingPolicyWorkerConfig | undefined);
private _maxInstances?;
get maxInstances(): number;
set maxInstances(value: number);
get maxInstancesInput(): number | undefined;
private _minInstances?;
get minInstances(): number;
set minInstances(value: number);
resetMinInstances(): void;
get minInstancesInput(): number | undefined;
private _weight?;
get weight(): number;
set weight(value: number);
resetWeight(): void;
get weightInput(): number | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy google_dataproc_autoscaling_policy}
*/
export declare class DataprocAutoscalingPolicy extends cdktf.TerraformResource {
static readonly tfResourceType = "google_dataproc_autoscaling_policy";
/**
* Generates CDKTF code for importing a DataprocAutoscalingPolicy resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the DataprocAutoscalingPolicy to import
* @param importFromId The id of the existing DataprocAutoscalingPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the DataprocAutoscalingPolicy to import is found
*/
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/dataproc_autoscaling_policy google_dataproc_autoscaling_policy} 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 DataprocAutoscalingPolicyConfig
*/
constructor(scope: Construct, id: string, config: DataprocAutoscalingPolicyConfig);
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
private _location?;
get location(): string;
set location(value: string);
resetLocation(): void;
get locationInput(): string | undefined;
get name(): string;
private _policyId?;
get policyId(): string;
set policyId(value: string);
get policyIdInput(): string | undefined;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
private _basicAlgorithm;
get basicAlgorithm(): DataprocAutoscalingPolicyBasicAlgorithmOutputReference;
putBasicAlgorithm(value: DataprocAutoscalingPolicyBasicAlgorithm): void;
resetBasicAlgorithm(): void;
get basicAlgorithmInput(): DataprocAutoscalingPolicyBasicAlgorithm | undefined;
private _secondaryWorkerConfig;
get secondaryWorkerConfig(): DataprocAutoscalingPolicySecondaryWorkerConfigOutputReference;
putSecondaryWorkerConfig(value: DataprocAutoscalingPolicySecondaryWorkerConfig): void;
resetSecondaryWorkerConfig(): void;
get secondaryWorkerConfigInput(): DataprocAutoscalingPolicySecondaryWorkerConfig | undefined;
private _timeouts;
get timeouts(): DataprocAutoscalingPolicyTimeoutsOutputReference;
putTimeouts(value: DataprocAutoscalingPolicyTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | DataprocAutoscalingPolicyTimeouts | undefined;
private _workerConfig;
get workerConfig(): DataprocAutoscalingPolicyWorkerConfigOutputReference;
putWorkerConfig(value: DataprocAutoscalingPolicyWorkerConfig): void;
resetWorkerConfig(): void;
get workerConfigInput(): DataprocAutoscalingPolicyWorkerConfig | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}