@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
736 lines (735 loc) • 44.5 kB
TypeScript
/**
* 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;
};
}