@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
379 lines (378 loc) • 19.6 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ComputeNodeGroupConfig extends cdktf.TerraformMetaArguments {
/**
* An optional textual description of the resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#description ComputeNodeGroup#description}
*/
readonly description?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#id ComputeNodeGroup#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 initial number of nodes in the node group. One of 'initial_size' or 'autoscaling_policy' must be configured on resource creation.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#initial_size ComputeNodeGroup#initial_size}
*/
readonly initialSize?: number;
/**
* Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#maintenance_policy ComputeNodeGroup#maintenance_policy}
*/
readonly maintenancePolicy?: string;
/**
* Name of the resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#name ComputeNodeGroup#name}
*/
readonly name?: string;
/**
* The URL of the node template to which this node group belongs.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#node_template ComputeNodeGroup#node_template}
*/
readonly nodeTemplate: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#project ComputeNodeGroup#project}
*/
readonly project?: string;
/**
* Zone where this node group is located
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#zone ComputeNodeGroup#zone}
*/
readonly zone?: string;
/**
* autoscaling_policy block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#autoscaling_policy ComputeNodeGroup#autoscaling_policy}
*/
readonly autoscalingPolicy?: ComputeNodeGroupAutoscalingPolicy;
/**
* maintenance_window block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#maintenance_window ComputeNodeGroup#maintenance_window}
*/
readonly maintenanceWindow?: ComputeNodeGroupMaintenanceWindow;
/**
* share_settings block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#share_settings ComputeNodeGroup#share_settings}
*/
readonly shareSettings?: ComputeNodeGroupShareSettings;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#timeouts ComputeNodeGroup#timeouts}
*/
readonly timeouts?: ComputeNodeGroupTimeouts;
}
export interface ComputeNodeGroupAutoscalingPolicy {
/**
* Maximum size of the node group. Set to a value less than or equal
* to 100 and greater than or equal to min-nodes.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#max_nodes ComputeNodeGroup#max_nodes}
*/
readonly maxNodes?: number;
/**
* Minimum size of the node group. Must be less
* than or equal to max-nodes. The default value is 0.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#min_nodes ComputeNodeGroup#min_nodes}
*/
readonly minNodes?: number;
/**
* The autoscaling mode. Set to one of the following:
* - OFF: Disables the autoscaler.
* - ON: Enables scaling in and scaling out.
* - ONLY_SCALE_OUT: Enables only scaling out.
* You must use this mode if your node groups are configured to
* restart their hosted VMs on minimal servers. Possible values: ["OFF", "ON", "ONLY_SCALE_OUT"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#mode ComputeNodeGroup#mode}
*/
readonly mode?: string;
}
export declare function computeNodeGroupAutoscalingPolicyToTerraform(struct?: ComputeNodeGroupAutoscalingPolicyOutputReference | ComputeNodeGroupAutoscalingPolicy): any;
export declare function computeNodeGroupAutoscalingPolicyToHclTerraform(struct?: ComputeNodeGroupAutoscalingPolicyOutputReference | ComputeNodeGroupAutoscalingPolicy): any;
export declare class ComputeNodeGroupAutoscalingPolicyOutputReference 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(): ComputeNodeGroupAutoscalingPolicy | undefined;
set internalValue(value: ComputeNodeGroupAutoscalingPolicy | undefined);
private _maxNodes?;
get maxNodes(): number;
set maxNodes(value: number);
resetMaxNodes(): void;
get maxNodesInput(): number | undefined;
private _minNodes?;
get minNodes(): number;
set minNodes(value: number);
resetMinNodes(): void;
get minNodesInput(): number | undefined;
private _mode?;
get mode(): string;
set mode(value: string);
resetMode(): void;
get modeInput(): string | undefined;
}
export interface ComputeNodeGroupMaintenanceWindow {
/**
* instances.start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#start_time ComputeNodeGroup#start_time}
*/
readonly startTime: string;
}
export declare function computeNodeGroupMaintenanceWindowToTerraform(struct?: ComputeNodeGroupMaintenanceWindowOutputReference | ComputeNodeGroupMaintenanceWindow): any;
export declare function computeNodeGroupMaintenanceWindowToHclTerraform(struct?: ComputeNodeGroupMaintenanceWindowOutputReference | ComputeNodeGroupMaintenanceWindow): any;
export declare class ComputeNodeGroupMaintenanceWindowOutputReference 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(): ComputeNodeGroupMaintenanceWindow | undefined;
set internalValue(value: ComputeNodeGroupMaintenanceWindow | undefined);
private _startTime?;
get startTime(): string;
set startTime(value: string);
get startTimeInput(): string | undefined;
}
export interface ComputeNodeGroupShareSettingsProjectMap {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#id ComputeNodeGroup#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 project id/number should be the same as the key of this project config in the project map.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#project_id ComputeNodeGroup#project_id}
*/
readonly projectId: string;
}
export declare function computeNodeGroupShareSettingsProjectMapToTerraform(struct?: ComputeNodeGroupShareSettingsProjectMap | cdktf.IResolvable): any;
export declare function computeNodeGroupShareSettingsProjectMapToHclTerraform(struct?: ComputeNodeGroupShareSettingsProjectMap | cdktf.IResolvable): any;
export declare class ComputeNodeGroupShareSettingsProjectMapOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ComputeNodeGroupShareSettingsProjectMap | cdktf.IResolvable | undefined;
set internalValue(value: ComputeNodeGroupShareSettingsProjectMap | cdktf.IResolvable | undefined);
private _id?;
get id(): string;
set id(value: string);
get idInput(): string | undefined;
private _projectId?;
get projectId(): string;
set projectId(value: string);
get projectIdInput(): string | undefined;
}
export declare class ComputeNodeGroupShareSettingsProjectMapList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComputeNodeGroupShareSettingsProjectMap[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ComputeNodeGroupShareSettingsProjectMapOutputReference;
}
export interface ComputeNodeGroupShareSettings {
/**
* Node group sharing type. Possible values: ["ORGANIZATION", "SPECIFIC_PROJECTS", "LOCAL"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#share_type ComputeNodeGroup#share_type}
*/
readonly shareType: string;
/**
* project_map block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#project_map ComputeNodeGroup#project_map}
*/
readonly projectMap?: ComputeNodeGroupShareSettingsProjectMap[] | cdktf.IResolvable;
}
export declare function computeNodeGroupShareSettingsToTerraform(struct?: ComputeNodeGroupShareSettingsOutputReference | ComputeNodeGroupShareSettings): any;
export declare function computeNodeGroupShareSettingsToHclTerraform(struct?: ComputeNodeGroupShareSettingsOutputReference | ComputeNodeGroupShareSettings): any;
export declare class ComputeNodeGroupShareSettingsOutputReference 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(): ComputeNodeGroupShareSettings | undefined;
set internalValue(value: ComputeNodeGroupShareSettings | undefined);
private _shareType?;
get shareType(): string;
set shareType(value: string);
get shareTypeInput(): string | undefined;
private _projectMap;
get projectMap(): ComputeNodeGroupShareSettingsProjectMapList;
putProjectMap(value: ComputeNodeGroupShareSettingsProjectMap[] | cdktf.IResolvable): void;
resetProjectMap(): void;
get projectMapInput(): cdktf.IResolvable | ComputeNodeGroupShareSettingsProjectMap[] | undefined;
}
export interface ComputeNodeGroupTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#create ComputeNodeGroup#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#delete ComputeNodeGroup#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#update ComputeNodeGroup#update}
*/
readonly update?: string;
}
export declare function computeNodeGroupTimeoutsToTerraform(struct?: ComputeNodeGroupTimeouts | cdktf.IResolvable): any;
export declare function computeNodeGroupTimeoutsToHclTerraform(struct?: ComputeNodeGroupTimeouts | cdktf.IResolvable): any;
export declare class ComputeNodeGroupTimeoutsOutputReference 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(): ComputeNodeGroupTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: ComputeNodeGroupTimeouts | 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;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group google_compute_node_group}
*/
export declare class ComputeNodeGroup extends cdktf.TerraformResource {
static readonly tfResourceType = "google_compute_node_group";
/**
* Generates CDKTF code for importing a ComputeNodeGroup 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 ComputeNodeGroup to import
* @param importFromId The id of the existing ComputeNodeGroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_node_group#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the ComputeNodeGroup 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/compute_node_group google_compute_node_group} 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 ComputeNodeGroupConfig
*/
constructor(scope: Construct, id: string, config: ComputeNodeGroupConfig);
get creationTimestamp(): string;
private _description?;
get description(): string;
set description(value: string);
resetDescription(): void;
get descriptionInput(): string | undefined;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
private _initialSize?;
get initialSize(): number;
set initialSize(value: number);
resetInitialSize(): void;
get initialSizeInput(): number | undefined;
private _maintenancePolicy?;
get maintenancePolicy(): string;
set maintenancePolicy(value: string);
resetMaintenancePolicy(): void;
get maintenancePolicyInput(): string | undefined;
private _name?;
get name(): string;
set name(value: string);
resetName(): void;
get nameInput(): string | undefined;
private _nodeTemplate?;
get nodeTemplate(): string;
set nodeTemplate(value: string);
get nodeTemplateInput(): string | undefined;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
get selfLink(): string;
get size(): number;
private _zone?;
get zone(): string;
set zone(value: string);
resetZone(): void;
get zoneInput(): string | undefined;
private _autoscalingPolicy;
get autoscalingPolicy(): ComputeNodeGroupAutoscalingPolicyOutputReference;
putAutoscalingPolicy(value: ComputeNodeGroupAutoscalingPolicy): void;
resetAutoscalingPolicy(): void;
get autoscalingPolicyInput(): ComputeNodeGroupAutoscalingPolicy | undefined;
private _maintenanceWindow;
get maintenanceWindow(): ComputeNodeGroupMaintenanceWindowOutputReference;
putMaintenanceWindow(value: ComputeNodeGroupMaintenanceWindow): void;
resetMaintenanceWindow(): void;
get maintenanceWindowInput(): ComputeNodeGroupMaintenanceWindow | undefined;
private _shareSettings;
get shareSettings(): ComputeNodeGroupShareSettingsOutputReference;
putShareSettings(value: ComputeNodeGroupShareSettings): void;
resetShareSettings(): void;
get shareSettingsInput(): ComputeNodeGroupShareSettings | undefined;
private _timeouts;
get timeouts(): ComputeNodeGroupTimeoutsOutputReference;
putTimeouts(value: ComputeNodeGroupTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | ComputeNodeGroupTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}