UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

736 lines (735 loc) 44.5 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeResourcePolicyConfig extends cdktf.TerraformMetaArguments { /** * An optional description of this resource. Provide this property when you create the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#description ComputeResourcePolicy#description} */ readonly description?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#id ComputeResourcePolicy#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 name of the resource, provided by the client when initially creating * the resource. The resource name must be 1-63 characters long, and comply * with RFC1035. Specifically, the name must be 1-63 characters long and * match the regular expression '[a-z]([-a-z0-9]*[a-z0-9])'? which means the * first character must be a lowercase letter, and all following characters * must be a dash, lowercase letter, or digit, except the last character, * which cannot be a dash. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#name ComputeResourcePolicy#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#project ComputeResourcePolicy#project} */ readonly project?: string; /** * Region where resource policy resides. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#region ComputeResourcePolicy#region} */ readonly region?: string; /** * disk_consistency_group_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#disk_consistency_group_policy ComputeResourcePolicy#disk_consistency_group_policy} */ readonly diskConsistencyGroupPolicy?: ComputeResourcePolicyDiskConsistencyGroupPolicy; /** * group_placement_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#group_placement_policy ComputeResourcePolicy#group_placement_policy} */ readonly groupPlacementPolicy?: ComputeResourcePolicyGroupPlacementPolicy; /** * instance_schedule_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#instance_schedule_policy ComputeResourcePolicy#instance_schedule_policy} */ readonly instanceSchedulePolicy?: ComputeResourcePolicyInstanceSchedulePolicy; /** * snapshot_schedule_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#snapshot_schedule_policy ComputeResourcePolicy#snapshot_schedule_policy} */ readonly snapshotSchedulePolicy?: ComputeResourcePolicySnapshotSchedulePolicy; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#timeouts ComputeResourcePolicy#timeouts} */ readonly timeouts?: ComputeResourcePolicyTimeouts; } export interface ComputeResourcePolicyDiskConsistencyGroupPolicy { /** * Enable disk consistency on the resource policy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#enabled ComputeResourcePolicy#enabled} */ readonly enabled: boolean | cdktf.IResolvable; } export declare function computeResourcePolicyDiskConsistencyGroupPolicyToTerraform(struct?: ComputeResourcePolicyDiskConsistencyGroupPolicyOutputReference | ComputeResourcePolicyDiskConsistencyGroupPolicy): any; export declare function computeResourcePolicyDiskConsistencyGroupPolicyToHclTerraform(struct?: ComputeResourcePolicyDiskConsistencyGroupPolicyOutputReference | ComputeResourcePolicyDiskConsistencyGroupPolicy): any; export declare class ComputeResourcePolicyDiskConsistencyGroupPolicyOutputReference 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(): ComputeResourcePolicyDiskConsistencyGroupPolicy | undefined; set internalValue(value: ComputeResourcePolicyDiskConsistencyGroupPolicy | undefined); private _enabled?; get enabled(): boolean | cdktf.IResolvable; set enabled(value: boolean | cdktf.IResolvable); get enabledInput(): boolean | cdktf.IResolvable | undefined; } export interface ComputeResourcePolicyGroupPlacementPolicy { /** * The number of availability domains instances will be spread across. If two instances are in different * availability domain, they will not be put in the same low latency network * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#availability_domain_count ComputeResourcePolicy#availability_domain_count} */ readonly availabilityDomainCount?: number; /** * Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. * Specify 'COLLOCATED' to enable collocation. Can only be specified with 'vm_count'. If compute instances are created * with a COLLOCATED policy, then exactly 'vm_count' instances must be created at the same time with the resource policy * attached. Possible values: ["COLLOCATED"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#collocation ComputeResourcePolicy#collocation} */ readonly collocation?: string; /** * Number of VMs in this placement group. Google does not recommend that you use this field * unless you use a compact policy and you want your policy to work only if it contains this * exact number of VMs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#vm_count ComputeResourcePolicy#vm_count} */ readonly vmCount?: number; } export declare function computeResourcePolicyGroupPlacementPolicyToTerraform(struct?: ComputeResourcePolicyGroupPlacementPolicyOutputReference | ComputeResourcePolicyGroupPlacementPolicy): any; export declare function computeResourcePolicyGroupPlacementPolicyToHclTerraform(struct?: ComputeResourcePolicyGroupPlacementPolicyOutputReference | ComputeResourcePolicyGroupPlacementPolicy): any; export declare class ComputeResourcePolicyGroupPlacementPolicyOutputReference 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(): ComputeResourcePolicyGroupPlacementPolicy | undefined; set internalValue(value: ComputeResourcePolicyGroupPlacementPolicy | undefined); private _availabilityDomainCount?; get availabilityDomainCount(): number; set availabilityDomainCount(value: number); resetAvailabilityDomainCount(): void; get availabilityDomainCountInput(): number | undefined; private _collocation?; get collocation(): string; set collocation(value: string); resetCollocation(): void; get collocationInput(): string | undefined; private _vmCount?; get vmCount(): number; set vmCount(value: number); resetVmCount(): void; get vmCountInput(): number | undefined; } export interface ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule { /** * Specifies the frequency for the operation, using the unix-cron format. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#schedule ComputeResourcePolicy#schedule} */ readonly schedule: string; } export declare function computeResourcePolicyInstanceSchedulePolicyVmStartScheduleToTerraform(struct?: ComputeResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputReference | ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule): any; export declare function computeResourcePolicyInstanceSchedulePolicyVmStartScheduleToHclTerraform(struct?: ComputeResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputReference | ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule): any; export declare class ComputeResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputReference 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(): ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule | undefined; set internalValue(value: ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule | undefined); private _schedule?; get schedule(): string; set schedule(value: string); get scheduleInput(): string | undefined; } export interface ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule { /** * Specifies the frequency for the operation, using the unix-cron format. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#schedule ComputeResourcePolicy#schedule} */ readonly schedule: string; } export declare function computeResourcePolicyInstanceSchedulePolicyVmStopScheduleToTerraform(struct?: ComputeResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputReference | ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule): any; export declare function computeResourcePolicyInstanceSchedulePolicyVmStopScheduleToHclTerraform(struct?: ComputeResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputReference | ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule): any; export declare class ComputeResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputReference 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(): ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule | undefined; set internalValue(value: ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule | undefined); private _schedule?; get schedule(): string; set schedule(value: string); get scheduleInput(): string | undefined; } export interface ComputeResourcePolicyInstanceSchedulePolicy { /** * The expiration time of the schedule. The timestamp is an RFC3339 string. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#expiration_time ComputeResourcePolicy#expiration_time} */ readonly expirationTime?: string; /** * The start time of the schedule. The timestamp is an RFC3339 string. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#start_time ComputeResourcePolicy#start_time} */ readonly startTime?: string; /** * Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name * from the tz database: http://en.wikipedia.org/wiki/Tz_database. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#time_zone ComputeResourcePolicy#time_zone} */ readonly timeZone: string; /** * vm_start_schedule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#vm_start_schedule ComputeResourcePolicy#vm_start_schedule} */ readonly vmStartSchedule?: ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule; /** * vm_stop_schedule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#vm_stop_schedule ComputeResourcePolicy#vm_stop_schedule} */ readonly vmStopSchedule?: ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule; } export declare function computeResourcePolicyInstanceSchedulePolicyToTerraform(struct?: ComputeResourcePolicyInstanceSchedulePolicyOutputReference | ComputeResourcePolicyInstanceSchedulePolicy): any; export declare function computeResourcePolicyInstanceSchedulePolicyToHclTerraform(struct?: ComputeResourcePolicyInstanceSchedulePolicyOutputReference | ComputeResourcePolicyInstanceSchedulePolicy): any; export declare class ComputeResourcePolicyInstanceSchedulePolicyOutputReference 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(): ComputeResourcePolicyInstanceSchedulePolicy | undefined; set internalValue(value: ComputeResourcePolicyInstanceSchedulePolicy | undefined); private _expirationTime?; get expirationTime(): string; set expirationTime(value: string); resetExpirationTime(): void; get expirationTimeInput(): string | undefined; private _startTime?; get startTime(): string; set startTime(value: string); resetStartTime(): void; get startTimeInput(): string | undefined; private _timeZone?; get timeZone(): string; set timeZone(value: string); get timeZoneInput(): string | undefined; private _vmStartSchedule; get vmStartSchedule(): ComputeResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputReference; putVmStartSchedule(value: ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule): void; resetVmStartSchedule(): void; get vmStartScheduleInput(): ComputeResourcePolicyInstanceSchedulePolicyVmStartSchedule | undefined; private _vmStopSchedule; get vmStopSchedule(): ComputeResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputReference; putVmStopSchedule(value: ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule): void; resetVmStopSchedule(): void; get vmStopScheduleInput(): ComputeResourcePolicyInstanceSchedulePolicyVmStopSchedule | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy { /** * Maximum age of the snapshot that is allowed to be kept. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#max_retention_days ComputeResourcePolicy#max_retention_days} */ readonly maxRetentionDays: number; /** * Specifies the behavior to apply to scheduled snapshots when * the source disk is deleted. Default value: "KEEP_AUTO_SNAPSHOTS" Possible values: ["KEEP_AUTO_SNAPSHOTS", "APPLY_RETENTION_POLICY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#on_source_disk_delete ComputeResourcePolicy#on_source_disk_delete} */ readonly onSourceDiskDelete?: string; } export declare function computeResourcePolicySnapshotSchedulePolicyRetentionPolicyToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputReference | ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy): any; export declare function computeResourcePolicySnapshotSchedulePolicyRetentionPolicyToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputReference | ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy | undefined); private _maxRetentionDays?; get maxRetentionDays(): number; set maxRetentionDays(value: number); get maxRetentionDaysInput(): number | undefined; private _onSourceDiskDelete?; get onSourceDiskDelete(): string; set onSourceDiskDelete(value: string); resetOnSourceDiskDelete(): void; get onSourceDiskDeleteInput(): string | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { /** * Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#days_in_cycle ComputeResourcePolicy#days_in_cycle} */ readonly daysInCycle: number; /** * 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_resource_policy#start_time ComputeResourcePolicy#start_time} */ readonly startTime: string; } export declare function computeResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule): any; export declare function computeResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule | undefined); private _daysInCycle?; get daysInCycle(): number; set daysInCycle(value: number); get daysInCycleInput(): number | undefined; private _startTime?; get startTime(): string; set startTime(value: string); get startTimeInput(): string | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { /** * The number of hours between snapshots. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#hours_in_cycle ComputeResourcePolicy#hours_in_cycle} */ readonly hoursInCycle: number; /** * Time within the window to start the operations. * It must be in an hourly format "HH:MM", * where HH : [00-23] and MM : [00] GMT. eg: 21:00 * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#start_time ComputeResourcePolicy#start_time} */ readonly startTime: string; } export declare function computeResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule): any; export declare function computeResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule | undefined); private _hoursInCycle?; get hoursInCycle(): number; set hoursInCycle(value: number); get hoursInCycleInput(): number | undefined; private _startTime?; get startTime(): string; set startTime(value: string); get startTimeInput(): string | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks { /** * The day of the week to create the snapshot. e.g. MONDAY Possible values: ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#day ComputeResourcePolicy#day} */ readonly day: string; /** * Time within the window to start the operations. * It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#start_time ComputeResourcePolicy#start_time} */ readonly startTime: string; } export declare function computeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeksToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks | cdktf.IResolvable): any; export declare function computeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeksToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks | cdktf.IResolvable): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeksOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks | cdktf.IResolvable | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks | cdktf.IResolvable | undefined); private _day?; get day(): string; set day(value: string); get dayInput(): string | undefined; private _startTime?; get startTime(): string; set startTime(value: string); get startTimeInput(): string | undefined; } export declare class ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeksList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks[] | 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): ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeksOutputReference; } export interface ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { /** * day_of_weeks block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#day_of_weeks ComputeResourcePolicy#day_of_weeks} */ readonly dayOfWeeks: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks[] | cdktf.IResolvable; } export declare function computeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule): any; export declare function computeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule | undefined); private _dayOfWeeks; get dayOfWeeks(): ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeksList; putDayOfWeeks(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks[] | cdktf.IResolvable): void; get dayOfWeeksInput(): cdktf.IResolvable | ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeeks[] | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicySchedule { /** * daily_schedule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#daily_schedule ComputeResourcePolicy#daily_schedule} */ readonly dailySchedule?: ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule; /** * hourly_schedule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#hourly_schedule ComputeResourcePolicy#hourly_schedule} */ readonly hourlySchedule?: ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule; /** * weekly_schedule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#weekly_schedule ComputeResourcePolicy#weekly_schedule} */ readonly weeklySchedule?: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule; } export declare function computeResourcePolicySnapshotSchedulePolicyScheduleToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicySchedule): any; export declare function computeResourcePolicySnapshotSchedulePolicyScheduleToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyScheduleOutputReference | ComputeResourcePolicySnapshotSchedulePolicySchedule): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyScheduleOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicySchedule | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicySchedule | undefined); private _dailySchedule; get dailySchedule(): ComputeResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputReference; putDailySchedule(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule): void; resetDailySchedule(): void; get dailyScheduleInput(): ComputeResourcePolicySnapshotSchedulePolicyScheduleDailySchedule | undefined; private _hourlySchedule; get hourlySchedule(): ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputReference; putHourlySchedule(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule): void; resetHourlySchedule(): void; get hourlyScheduleInput(): ComputeResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule | undefined; private _weeklySchedule; get weeklySchedule(): ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputReference; putWeeklySchedule(value: ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule): void; resetWeeklySchedule(): void; get weeklyScheduleInput(): ComputeResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties { /** * Creates the new snapshot in the snapshot chain labeled with the * specified name. The chain name must be 1-63 characters long and comply * with RFC1035. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#chain_name ComputeResourcePolicy#chain_name} */ readonly chainName?: string; /** * Whether to perform a 'guest aware' snapshot. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#guest_flush ComputeResourcePolicy#guest_flush} */ readonly guestFlush?: boolean | cdktf.IResolvable; /** * A set of key-value pairs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#labels ComputeResourcePolicy#labels} */ readonly labels?: { [key: string]: string; }; /** * Cloud Storage bucket location to store the auto snapshot * (regional or multi-regional) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#storage_locations ComputeResourcePolicy#storage_locations} */ readonly storageLocations?: string[]; } export declare function computeResourcePolicySnapshotSchedulePolicySnapshotPropertiesToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputReference | ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties): any; export declare function computeResourcePolicySnapshotSchedulePolicySnapshotPropertiesToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputReference | ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties): any; export declare class ComputeResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties | undefined); private _chainName?; get chainName(): string; set chainName(value: string); resetChainName(): void; get chainNameInput(): string | undefined; private _guestFlush?; get guestFlush(): boolean | cdktf.IResolvable; set guestFlush(value: boolean | cdktf.IResolvable); resetGuestFlush(): void; get guestFlushInput(): boolean | cdktf.IResolvable | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _storageLocations?; get storageLocations(): string[]; set storageLocations(value: string[]); resetStorageLocations(): void; get storageLocationsInput(): string[] | undefined; } export interface ComputeResourcePolicySnapshotSchedulePolicy { /** * retention_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#retention_policy ComputeResourcePolicy#retention_policy} */ readonly retentionPolicy?: ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy; /** * schedule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#schedule ComputeResourcePolicy#schedule} */ readonly schedule: ComputeResourcePolicySnapshotSchedulePolicySchedule; /** * snapshot_properties block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#snapshot_properties ComputeResourcePolicy#snapshot_properties} */ readonly snapshotProperties?: ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties; } export declare function computeResourcePolicySnapshotSchedulePolicyToTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyOutputReference | ComputeResourcePolicySnapshotSchedulePolicy): any; export declare function computeResourcePolicySnapshotSchedulePolicyToHclTerraform(struct?: ComputeResourcePolicySnapshotSchedulePolicyOutputReference | ComputeResourcePolicySnapshotSchedulePolicy): any; export declare class ComputeResourcePolicySnapshotSchedulePolicyOutputReference 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(): ComputeResourcePolicySnapshotSchedulePolicy | undefined; set internalValue(value: ComputeResourcePolicySnapshotSchedulePolicy | undefined); private _retentionPolicy; get retentionPolicy(): ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputReference; putRetentionPolicy(value: ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy): void; resetRetentionPolicy(): void; get retentionPolicyInput(): ComputeResourcePolicySnapshotSchedulePolicyRetentionPolicy | undefined; private _schedule; get schedule(): ComputeResourcePolicySnapshotSchedulePolicyScheduleOutputReference; putSchedule(value: ComputeResourcePolicySnapshotSchedulePolicySchedule): void; get scheduleInput(): ComputeResourcePolicySnapshotSchedulePolicySchedule | undefined; private _snapshotProperties; get snapshotProperties(): ComputeResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputReference; putSnapshotProperties(value: ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties): void; resetSnapshotProperties(): void; get snapshotPropertiesInput(): ComputeResourcePolicySnapshotSchedulePolicySnapshotProperties | undefined; } export interface ComputeResourcePolicyTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#create ComputeResourcePolicy#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#delete ComputeResourcePolicy#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#update ComputeResourcePolicy#update} */ readonly update?: string; } export declare function computeResourcePolicyTimeoutsToTerraform(struct?: ComputeResourcePolicyTimeouts | cdktf.IResolvable): any; export declare function computeResourcePolicyTimeoutsToHclTerraform(struct?: ComputeResourcePolicyTimeouts | cdktf.IResolvable): any; export declare class ComputeResourcePolicyTimeoutsOutputReference 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(): ComputeResourcePolicyTimeouts | cdktf.IResolvable | undefined; set internalValue(value: ComputeResourcePolicyTimeouts | 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_resource_policy google_compute_resource_policy} */ export declare class ComputeResourcePolicy extends cdktf.TerraformResource { static readonly tfResourceType = "google_compute_resource_policy"; /** * Generates CDKTF code for importing a ComputeResourcePolicy 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 ComputeResourcePolicy to import * @param importFromId The id of the existing ComputeResourcePolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_resource_policy#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ComputeResourcePolicy 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_resource_policy google_compute_resource_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 ComputeResourcePolicyConfig */ constructor(scope: Construct, id: string, config: ComputeResourcePolicyConfig); 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 _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _project?; get project(): string; set project(value: string); resetProject(): void; get projectInput(): string | undefined; private _region?; get region(): string; set region(value: string); resetRegion(): void; get regionInput(): string | undefined; get selfLink(): string; private _diskConsistencyGroupPolicy; get diskConsistencyGroupPolicy(): ComputeResourcePolicyDiskConsistencyGroupPolicyOutputReference; putDiskConsistencyGroupPolicy(value: ComputeResourcePolicyDiskConsistencyGroupPolicy): void; resetDiskConsistencyGroupPolicy(): void; get diskConsistencyGroupPolicyInput(): ComputeResourcePolicyDiskConsistencyGroupPolicy | undefined; private _groupPlacementPolicy; get groupPlacementPolicy(): ComputeResourcePolicyGroupPlacementPolicyOutputReference; putGroupPlacementPolicy(value: ComputeResourcePolicyGroupPlacementPolicy): void; resetGroupPlacementPolicy(): void; get groupPlacementPolicyInput(): ComputeResourcePolicyGroupPlacementPolicy | undefined; private _instanceSchedulePolicy; get instanceSchedulePolicy(): ComputeResourcePolicyInstanceSchedulePolicyOutputReference; putInstanceSchedulePolicy(value: ComputeResourcePolicyInstanceSchedulePolicy): void; resetInstanceSchedulePolicy(): void; get instanceSchedulePolicyInput(): ComputeResourcePolicyInstanceSchedulePolicy | undefined; private _snapshotSchedulePolicy; get snapshotSchedulePolicy(): ComputeResourcePolicySnapshotSchedulePolicyOutputReference; putSnapshotSchedulePolicy(value: ComputeResourcePolicySnapshotSchedulePolicy): void; resetSnapshotSchedulePolicy(): void; get snapshotSchedulePolicyInput(): ComputeResourcePolicySnapshotSchedulePolicy | undefined; private _timeouts; get timeouts(): ComputeResourcePolicyTimeoutsOutputReference; putTimeouts(value: ComputeResourcePolicyTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | ComputeResourcePolicyTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }