@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
738 lines • 107 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ComposerEnvironmentConfig extends cdktf.TerraformMetaArguments {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#id ComposerEnvironment#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;
/**
* User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])?. Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
*
* **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
* Please refer to the field 'effective_labels' for all of the labels present on the resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#labels ComposerEnvironment#labels}
*/
readonly labels?: {
[key: string]: string;
};
/**
* Name of the environment.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#name ComposerEnvironment#name}
*/
readonly name: string;
/**
* The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#project ComposerEnvironment#project}
*/
readonly project?: string;
/**
* The location or Compute Engine region for the environment.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#region ComposerEnvironment#region}
*/
readonly region?: string;
/**
* config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#config ComposerEnvironment#config}
*/
readonly config?: ComposerEnvironmentConfigA;
/**
* storage_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#storage_config ComposerEnvironment#storage_config}
*/
readonly storageConfig?: ComposerEnvironmentStorageConfig;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#timeouts ComposerEnvironment#timeouts}
*/
readonly timeouts?: ComposerEnvironmentTimeouts;
}
export interface ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig {
/**
* How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#retention_days ComposerEnvironment#retention_days}
*/
readonly retentionDays?: number;
/**
* Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#retention_mode ComposerEnvironment#retention_mode}
*/
readonly retentionMode?: string;
}
export declare function composerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigToTerraform(struct?: ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig | cdktf.IResolvable): any;
export declare function composerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigToHclTerraform(struct?: ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig | cdktf.IResolvable): any;
export declare class ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigOutputReference 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(): ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig | cdktf.IResolvable | undefined;
set internalValue(value: ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig | cdktf.IResolvable | undefined);
private _retentionDays?;
get retentionDays(): number;
set retentionDays(value: number);
resetRetentionDays(): void;
get retentionDaysInput(): number | undefined;
private _retentionMode?;
get retentionMode(): string;
set retentionMode(value: string);
resetRetentionMode(): void;
get retentionModeInput(): string | undefined;
}
export declare class ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig[] | 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): ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigOutputReference;
}
export interface ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig {
/**
* Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#storage_mode ComposerEnvironment#storage_mode}
*/
readonly storageMode?: string;
}
export declare function composerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigToTerraform(struct?: ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig | cdktf.IResolvable): any;
export declare function composerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigToHclTerraform(struct?: ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig | cdktf.IResolvable): any;
export declare class ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigOutputReference 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(): ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig | cdktf.IResolvable | undefined;
set internalValue(value: ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig | cdktf.IResolvable | undefined);
private _storageMode?;
get storageMode(): string;
set storageMode(value: string);
resetStorageMode(): void;
get storageModeInput(): string | undefined;
}
export declare class ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig[] | 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): ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigOutputReference;
}
export interface ComposerEnvironmentConfigDataRetentionConfig {
/**
* airflow_metadata_retention_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#airflow_metadata_retention_config ComposerEnvironment#airflow_metadata_retention_config}
*/
readonly airflowMetadataRetentionConfig?: ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig[] | cdktf.IResolvable;
/**
* task_logs_retention_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#task_logs_retention_config ComposerEnvironment#task_logs_retention_config}
*/
readonly taskLogsRetentionConfig?: ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig[] | cdktf.IResolvable;
}
export declare function composerEnvironmentConfigDataRetentionConfigToTerraform(struct?: ComposerEnvironmentConfigDataRetentionConfigOutputReference | ComposerEnvironmentConfigDataRetentionConfig): any;
export declare function composerEnvironmentConfigDataRetentionConfigToHclTerraform(struct?: ComposerEnvironmentConfigDataRetentionConfigOutputReference | ComposerEnvironmentConfigDataRetentionConfig): any;
export declare class ComposerEnvironmentConfigDataRetentionConfigOutputReference 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(): ComposerEnvironmentConfigDataRetentionConfig | undefined;
set internalValue(value: ComposerEnvironmentConfigDataRetentionConfig | undefined);
private _airflowMetadataRetentionConfig;
get airflowMetadataRetentionConfig(): ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigList;
putAirflowMetadataRetentionConfig(value: ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig[] | cdktf.IResolvable): void;
resetAirflowMetadataRetentionConfig(): void;
get airflowMetadataRetentionConfigInput(): cdktf.IResolvable | ComposerEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig[] | undefined;
private _taskLogsRetentionConfig;
get taskLogsRetentionConfig(): ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigList;
putTaskLogsRetentionConfig(value: ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig[] | cdktf.IResolvable): void;
resetTaskLogsRetentionConfig(): void;
get taskLogsRetentionConfigInput(): cdktf.IResolvable | ComposerEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig[] | undefined;
}
export interface ComposerEnvironmentConfigDatabaseConfig {
/**
* Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#machine_type ComposerEnvironment#machine_type}
*/
readonly machineType?: string;
/**
* Optional. Cloud SQL database preferred zone.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#zone ComposerEnvironment#zone}
*/
readonly zone?: string;
}
export declare function composerEnvironmentConfigDatabaseConfigToTerraform(struct?: ComposerEnvironmentConfigDatabaseConfigOutputReference | ComposerEnvironmentConfigDatabaseConfig): any;
export declare function composerEnvironmentConfigDatabaseConfigToHclTerraform(struct?: ComposerEnvironmentConfigDatabaseConfigOutputReference | ComposerEnvironmentConfigDatabaseConfig): any;
export declare class ComposerEnvironmentConfigDatabaseConfigOutputReference 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(): ComposerEnvironmentConfigDatabaseConfig | undefined;
set internalValue(value: ComposerEnvironmentConfigDatabaseConfig | undefined);
private _machineType?;
get machineType(): string;
set machineType(value: string);
resetMachineType(): void;
get machineTypeInput(): string | undefined;
private _zone?;
get zone(): string;
set zone(value: string);
resetZone(): void;
get zoneInput(): string | undefined;
}
export interface ComposerEnvironmentConfigEncryptionConfig {
/**
* Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#kms_key_name ComposerEnvironment#kms_key_name}
*/
readonly kmsKeyName: string;
}
export declare function composerEnvironmentConfigEncryptionConfigToTerraform(struct?: ComposerEnvironmentConfigEncryptionConfigOutputReference | ComposerEnvironmentConfigEncryptionConfig): any;
export declare function composerEnvironmentConfigEncryptionConfigToHclTerraform(struct?: ComposerEnvironmentConfigEncryptionConfigOutputReference | ComposerEnvironmentConfigEncryptionConfig): any;
export declare class ComposerEnvironmentConfigEncryptionConfigOutputReference 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(): ComposerEnvironmentConfigEncryptionConfig | undefined;
set internalValue(value: ComposerEnvironmentConfigEncryptionConfig | undefined);
private _kmsKeyName?;
get kmsKeyName(): string;
set kmsKeyName(value: string);
get kmsKeyNameInput(): string | undefined;
}
export interface ComposerEnvironmentConfigMaintenanceWindow {
/**
* Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#end_time ComposerEnvironment#end_time}
*/
readonly endTime: string;
/**
* Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#recurrence ComposerEnvironment#recurrence}
*/
readonly recurrence: string;
/**
* Start time of the first recurrence of the maintenance window.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#start_time ComposerEnvironment#start_time}
*/
readonly startTime: string;
}
export declare function composerEnvironmentConfigMaintenanceWindowToTerraform(struct?: ComposerEnvironmentConfigMaintenanceWindowOutputReference | ComposerEnvironmentConfigMaintenanceWindow): any;
export declare function composerEnvironmentConfigMaintenanceWindowToHclTerraform(struct?: ComposerEnvironmentConfigMaintenanceWindowOutputReference | ComposerEnvironmentConfigMaintenanceWindow): any;
export declare class ComposerEnvironmentConfigMaintenanceWindowOutputReference 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(): ComposerEnvironmentConfigMaintenanceWindow | undefined;
set internalValue(value: ComposerEnvironmentConfigMaintenanceWindow | undefined);
private _endTime?;
get endTime(): string;
set endTime(value: string);
get endTimeInput(): string | undefined;
private _recurrence?;
get recurrence(): string;
set recurrence(value: string);
get recurrenceInput(): string | undefined;
private _startTime?;
get startTime(): string;
set startTime(value: string);
get startTimeInput(): string | undefined;
}
export interface ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks {
/**
* cidr_block must be specified in CIDR notation.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cidr_block ComposerEnvironment#cidr_block}
*/
readonly cidrBlock: string;
/**
* display_name is a field for users to identify CIDR blocks.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#display_name ComposerEnvironment#display_name}
*/
readonly displayName?: string;
}
export declare function composerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksToTerraform(struct?: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable): any;
export declare function composerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksToHclTerraform(struct?: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable): any;
export declare class ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksOutputReference 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(): ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable | undefined;
set internalValue(value: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks | cdktf.IResolvable | undefined);
private _cidrBlock?;
get cidrBlock(): string;
set cidrBlock(value: string);
get cidrBlockInput(): string | undefined;
private _displayName?;
get displayName(): string;
set displayName(value: string);
resetDisplayName(): void;
get displayNameInput(): string | undefined;
}
export declare class ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks[] | 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): ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksOutputReference;
}
export interface ComposerEnvironmentConfigMasterAuthorizedNetworksConfig {
/**
* Whether or not master authorized networks is enabled.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#enabled ComposerEnvironment#enabled}
*/
readonly enabled: boolean | cdktf.IResolvable;
/**
* cidr_blocks block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cidr_blocks ComposerEnvironment#cidr_blocks}
*/
readonly cidrBlocks?: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks[] | cdktf.IResolvable;
}
export declare function composerEnvironmentConfigMasterAuthorizedNetworksConfigToTerraform(struct?: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigOutputReference | ComposerEnvironmentConfigMasterAuthorizedNetworksConfig): any;
export declare function composerEnvironmentConfigMasterAuthorizedNetworksConfigToHclTerraform(struct?: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigOutputReference | ComposerEnvironmentConfigMasterAuthorizedNetworksConfig): any;
export declare class ComposerEnvironmentConfigMasterAuthorizedNetworksConfigOutputReference 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(): ComposerEnvironmentConfigMasterAuthorizedNetworksConfig | undefined;
set internalValue(value: ComposerEnvironmentConfigMasterAuthorizedNetworksConfig | undefined);
private _enabled?;
get enabled(): boolean | cdktf.IResolvable;
set enabled(value: boolean | cdktf.IResolvable);
get enabledInput(): boolean | cdktf.IResolvable | undefined;
private _cidrBlocks;
get cidrBlocks(): ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocksList;
putCidrBlocks(value: ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks[] | cdktf.IResolvable): void;
resetCidrBlocks(): void;
get cidrBlocksInput(): cdktf.IResolvable | ComposerEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlocks[] | undefined;
}
export interface ComposerEnvironmentConfigNodeConfigIpAllocationPolicy {
/**
* The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when use_ip_aliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cluster_ipv4_cidr_block ComposerEnvironment#cluster_ipv4_cidr_block}
*/
readonly clusterIpv4CidrBlock?: string;
/**
* The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when use_ip_aliases is true.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cluster_secondary_range_name ComposerEnvironment#cluster_secondary_range_name}
*/
readonly clusterSecondaryRangeName?: string;
/**
* The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when use_ip_aliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#services_ipv4_cidr_block ComposerEnvironment#services_ipv4_cidr_block}
*/
readonly servicesIpv4CidrBlock?: string;
/**
* The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when use_ip_aliases is true.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#services_secondary_range_name ComposerEnvironment#services_secondary_range_name}
*/
readonly servicesSecondaryRangeName?: string;
/**
* Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ip_allocation_policy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#use_ip_aliases ComposerEnvironment#use_ip_aliases}
*/
readonly useIpAliases?: boolean | cdktf.IResolvable;
}
export declare function composerEnvironmentConfigNodeConfigIpAllocationPolicyToTerraform(struct?: ComposerEnvironmentConfigNodeConfigIpAllocationPolicyOutputReference | ComposerEnvironmentConfigNodeConfigIpAllocationPolicy): any;
export declare function composerEnvironmentConfigNodeConfigIpAllocationPolicyToHclTerraform(struct?: ComposerEnvironmentConfigNodeConfigIpAllocationPolicyOutputReference | ComposerEnvironmentConfigNodeConfigIpAllocationPolicy): any;
export declare class ComposerEnvironmentConfigNodeConfigIpAllocationPolicyOutputReference 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(): ComposerEnvironmentConfigNodeConfigIpAllocationPolicy | undefined;
set internalValue(value: ComposerEnvironmentConfigNodeConfigIpAllocationPolicy | undefined);
private _clusterIpv4CidrBlock?;
get clusterIpv4CidrBlock(): string;
set clusterIpv4CidrBlock(value: string);
resetClusterIpv4CidrBlock(): void;
get clusterIpv4CidrBlockInput(): string | undefined;
private _clusterSecondaryRangeName?;
get clusterSecondaryRangeName(): string;
set clusterSecondaryRangeName(value: string);
resetClusterSecondaryRangeName(): void;
get clusterSecondaryRangeNameInput(): string | undefined;
private _servicesIpv4CidrBlock?;
get servicesIpv4CidrBlock(): string;
set servicesIpv4CidrBlock(value: string);
resetServicesIpv4CidrBlock(): void;
get servicesIpv4CidrBlockInput(): string | undefined;
private _servicesSecondaryRangeName?;
get servicesSecondaryRangeName(): string;
set servicesSecondaryRangeName(value: string);
resetServicesSecondaryRangeName(): void;
get servicesSecondaryRangeNameInput(): string | undefined;
private _useIpAliases?;
get useIpAliases(): boolean | cdktf.IResolvable;
set useIpAliases(value: boolean | cdktf.IResolvable);
resetUseIpAliases(): void;
get useIpAliasesInput(): boolean | cdktf.IResolvable | undefined;
}
export interface ComposerEnvironmentConfigNodeConfig {
/**
* IPv4 cidr range that will be used by Composer internal components.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#composer_internal_ipv4_cidr_block ComposerEnvironment#composer_internal_ipv4_cidr_block}
*/
readonly composerInternalIpv4CidrBlock?: string;
/**
* PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#composer_network_attachment ComposerEnvironment#composer_network_attachment}
*/
readonly composerNetworkAttachment?: string;
/**
* The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#disk_size_gb ComposerEnvironment#disk_size_gb}
*/
readonly diskSizeGb?: number;
/**
* Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#enable_ip_masq_agent ComposerEnvironment#enable_ip_masq_agent}
*/
readonly enableIpMasqAgent?: boolean | cdktf.IResolvable;
/**
* The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#machine_type ComposerEnvironment#machine_type}
*/
readonly machineType?: string;
/**
* The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#network ComposerEnvironment#network}
*/
readonly network?: string;
/**
* The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#oauth_scopes ComposerEnvironment#oauth_scopes}
*/
readonly oauthScopes?: string[];
/**
* The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#service_account ComposerEnvironment#service_account}
*/
readonly serviceAccount?: string;
/**
* The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#subnetwork ComposerEnvironment#subnetwork}
*/
readonly subnetwork?: string;
/**
* The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#tags ComposerEnvironment#tags}
*/
readonly tags?: string[];
/**
* The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#zone ComposerEnvironment#zone}
*/
readonly zone?: string;
/**
* ip_allocation_policy block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#ip_allocation_policy ComposerEnvironment#ip_allocation_policy}
*/
readonly ipAllocationPolicy?: ComposerEnvironmentConfigNodeConfigIpAllocationPolicy;
}
export declare function composerEnvironmentConfigNodeConfigToTerraform(struct?: ComposerEnvironmentConfigNodeConfigOutputReference | ComposerEnvironmentConfigNodeConfig): any;
export declare function composerEnvironmentConfigNodeConfigToHclTerraform(struct?: ComposerEnvironmentConfigNodeConfigOutputReference | ComposerEnvironmentConfigNodeConfig): any;
export declare class ComposerEnvironmentConfigNodeConfigOutputReference 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(): ComposerEnvironmentConfigNodeConfig | undefined;
set internalValue(value: ComposerEnvironmentConfigNodeConfig | undefined);
private _composerInternalIpv4CidrBlock?;
get composerInternalIpv4CidrBlock(): string;
set composerInternalIpv4CidrBlock(value: string);
resetComposerInternalIpv4CidrBlock(): void;
get composerInternalIpv4CidrBlockInput(): string | undefined;
private _composerNetworkAttachment?;
get composerNetworkAttachment(): string;
set composerNetworkAttachment(value: string);
resetComposerNetworkAttachment(): void;
get composerNetworkAttachmentInput(): string | undefined;
private _diskSizeGb?;
get diskSizeGb(): number;
set diskSizeGb(value: number);
resetDiskSizeGb(): void;
get diskSizeGbInput(): number | undefined;
private _enableIpMasqAgent?;
get enableIpMasqAgent(): boolean | cdktf.IResolvable;
set enableIpMasqAgent(value: boolean | cdktf.IResolvable);
resetEnableIpMasqAgent(): void;
get enableIpMasqAgentInput(): boolean | cdktf.IResolvable | undefined;
private _machineType?;
get machineType(): string;
set machineType(value: string);
resetMachineType(): void;
get machineTypeInput(): string | undefined;
private _network?;
get network(): string;
set network(value: string);
resetNetwork(): void;
get networkInput(): string | undefined;
private _oauthScopes?;
get oauthScopes(): string[];
set oauthScopes(value: string[]);
resetOauthScopes(): void;
get oauthScopesInput(): string[] | undefined;
private _serviceAccount?;
get serviceAccount(): string;
set serviceAccount(value: string);
resetServiceAccount(): void;
get serviceAccountInput(): string | undefined;
private _subnetwork?;
get subnetwork(): string;
set subnetwork(value: string);
resetSubnetwork(): void;
get subnetworkInput(): string | undefined;
private _tags?;
get tags(): string[];
set tags(value: string[]);
resetTags(): void;
get tagsInput(): string[] | undefined;
private _zone?;
get zone(): string;
set zone(value: string);
resetZone(): void;
get zoneInput(): string | undefined;
private _ipAllocationPolicy;
get ipAllocationPolicy(): ComposerEnvironmentConfigNodeConfigIpAllocationPolicyOutputReference;
putIpAllocationPolicy(value: ComposerEnvironmentConfigNodeConfigIpAllocationPolicy): void;
resetIpAllocationPolicy(): void;
get ipAllocationPolicyInput(): ComposerEnvironmentConfigNodeConfigIpAllocationPolicy | undefined;
}
export interface ComposerEnvironmentConfigPrivateEnvironmentConfig {
/**
* When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cloud_composer_connection_subnetwork ComposerEnvironment#cloud_composer_connection_subnetwork}
*/
readonly cloudComposerConnectionSubnetwork?: string;
/**
* The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cloud_composer_network_ipv4_cidr_block ComposerEnvironment#cloud_composer_network_ipv4_cidr_block}
*/
readonly cloudComposerNetworkIpv4CidrBlock?: string;
/**
* The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#cloud_sql_ipv4_cidr_block ComposerEnvironment#cloud_sql_ipv4_cidr_block}
*/
readonly cloudSqlIpv4CidrBlock?: string;
/**
* Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#connection_type ComposerEnvironment#connection_type}
*/
readonly connectionType?: string;
/**
* If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#enable_private_endpoint ComposerEnvironment#enable_private_endpoint}
*/
readonly enablePrivateEndpoint?: boolean | cdktf.IResolvable;
/**
* When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#enable_privately_used_public_ips ComposerEnvironment#enable_privately_used_public_ips}
*/
readonly enablePrivatelyUsedPublicIps?: boolean | cdktf.IResolvable;
/**
* The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#master_ipv4_cidr_block ComposerEnvironment#master_ipv4_cidr_block}
*/
readonly masterIpv4CidrBlock?: string;
/**
* The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#web_server_ipv4_cidr_block ComposerEnvironment#web_server_ipv4_cidr_block}
*/
readonly webServerIpv4CidrBlock?: string;
}
export declare function composerEnvironmentConfigPrivateEnvironmentConfigToTerraform(struct?: ComposerEnvironmentConfigPrivateEnvironmentConfigOutputReference | ComposerEnvironmentConfigPrivateEnvironmentConfig): any;
export declare function composerEnvironmentConfigPrivateEnvironmentConfigToHclTerraform(struct?: ComposerEnvironmentConfigPrivateEnvironmentConfigOutputReference | ComposerEnvironmentConfigPrivateEnvironmentConfig): any;
export declare class ComposerEnvironmentConfigPrivateEnvironmentConfigOutputReference 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(): ComposerEnvironmentConfigPrivateEnvironmentConfig | undefined;
set internalValue(value: ComposerEnvironmentConfigPrivateEnvironmentConfig | undefined);
private _cloudComposerConnectionSubnetwork?;
get cloudComposerConnectionSubnetwork(): string;
set cloudComposerConnectionSubnetwork(value: string);
resetCloudComposerConnectionSubnetwork(): void;
get cloudComposerConnectionSubnetworkInput(): string | undefined;
private _cloudComposerNetworkIpv4CidrBlock?;
get cloudComposerNetworkIpv4CidrBlock(): string;
set cloudComposerNetworkIpv4CidrBlock(value: string);
resetCloudComposerNetworkIpv4CidrBlock(): void;
get cloudComposerNetworkIpv4CidrBlockInput(): string | undefined;
private _cloudSqlIpv4CidrBlock?;
get cloudSqlIpv4CidrBlock(): string;
set cloudSqlIpv4CidrBlock(value: string);
resetCloudSqlIpv4CidrBlock(): void;
get cloudSqlIpv4CidrBlockInput(): string | undefined;
private _connectionType?;
get connectionType(): string;
set connectionType(value: string);
resetConnectionType(): void;
get connectionTypeInput(): string | undefined;
private _enablePrivateEndpoint?;
get enablePrivateEndpoint(): boolean | cdktf.IResolvable;
set enablePrivateEndpoint(value: boolean | cdktf.IResolvable);
resetEnablePrivateEndpoint(): void;
get enablePrivateEndpointInput(): boolean | cdktf.IResolvable | undefined;
private _enablePrivatelyUsedPublicIps?;
get enablePrivatelyUsedPublicIps(): boolean | cdktf.IResolvable;
set enablePrivatelyUsedPublicIps(value: boolean | cdktf.IResolvable);
resetEnablePrivatelyUsedPublicIps(): void;
get enablePrivatelyUsedPublicIpsInput(): boolean | cdktf.IResolvable | undefined;
private _masterIpv4CidrBlock?;
get masterIpv4CidrBlock(): string;
set masterIpv4CidrBlock(value: string);
resetMasterIpv4CidrBlock(): void;
get masterIpv4CidrBlockInput(): string | undefined;
private _webServerIpv4CidrBlock?;
get webServerIpv4CidrBlock(): string;
set webServerIpv4CidrBlock(value: string);
resetWebServerIpv4CidrBlock(): void;
get webServerIpv4CidrBlockInput(): string | undefined;
}
export interface ComposerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig {
/**
* When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#enabled ComposerEnvironment#enabled}
*/
readonly enabled: boolean | cdktf.IResolvable;
/**
* Snapshot schedule, in the unix-cron format.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#snapshot_creation_schedule ComposerEnvironment#snapshot_creation_schedule}
*/
readonly snapshotCreationSchedule?: string;
/**
* the URI of a bucket folder where to save the snapshot.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#snapshot_location ComposerEnvironment#snapshot_location}
*/
readonly snapshotLocation?: string;
/**
* A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/composer_environment#time_zone ComposerEnvironment#time_zone}
*/
readonly timeZone?: string;
}
export declare function composerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfigToTerraform(struct?: ComposerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfigOutputReference | ComposerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig): any;
export declare function composerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfigToHclTerraform(struct?: ComposerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfigOutputReference | ComposerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig): any;
export declare class ComposerEnvironmentConfigRecoveryConfigScheduledSnapshotsConfigOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/*