@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
685 lines (684 loc) • 35.4 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface BillingBudgetConfig extends cdktf.TerraformMetaArguments {
/**
* ID of the billing account to set a budget on.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#billing_account BillingBudget#billing_account}
*/
readonly billingAccount: string;
/**
* User data for display name in UI. Must be <= 60 chars.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#display_name BillingBudget#display_name}
*/
readonly displayName?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#id BillingBudget#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 ownership scope of the budget. The ownership scope and users'
* IAM permissions determine who has full access to the budget's data. Possible values: ["OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#ownership_scope BillingBudget#ownership_scope}
*/
readonly ownershipScope?: string;
/**
* all_updates_rule block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#all_updates_rule BillingBudget#all_updates_rule}
*/
readonly allUpdatesRule?: BillingBudgetAllUpdatesRule;
/**
* amount block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#amount BillingBudget#amount}
*/
readonly amount: BillingBudgetAmount;
/**
* budget_filter block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#budget_filter BillingBudget#budget_filter}
*/
readonly budgetFilter?: BillingBudgetBudgetFilter;
/**
* threshold_rules block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#threshold_rules BillingBudget#threshold_rules}
*/
readonly thresholdRules?: BillingBudgetThresholdRules[] | cdktf.IResolvable;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#timeouts BillingBudget#timeouts}
*/
readonly timeouts?: BillingBudgetTimeouts;
}
export interface BillingBudgetAllUpdatesRule {
/**
* Boolean. When set to true, disables default notifications sent
* when a threshold is exceeded. Default recipients are
* those with Billing Account Administrators and Billing
* Account Users IAM roles for the target account.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#disable_default_iam_recipients BillingBudget#disable_default_iam_recipients}
*/
readonly disableDefaultIamRecipients?: boolean | cdktf.IResolvable;
/**
* When set to true, and when the budget has a single project configured,
* notifications will be sent to project level recipients of that project.
* This field will be ignored if the budget has multiple or no project configured.
*
* Currently, project level recipients are the users with Owner role on a cloud project.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#enable_project_level_recipients BillingBudget#enable_project_level_recipients}
*/
readonly enableProjectLevelRecipients?: boolean | cdktf.IResolvable;
/**
* The full resource name of a monitoring notification
* channel in the form
* projects/{project_id}/notificationChannels/{channel_id}.
* A maximum of 5 channels are allowed.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#monitoring_notification_channels BillingBudget#monitoring_notification_channels}
*/
readonly monitoringNotificationChannels?: string[];
/**
* The name of the Cloud Pub/Sub topic where budget related
* messages will be published, in the form
* projects/{project_id}/topics/{topic_id}. Updates are sent
* at regular intervals to the topic.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#pubsub_topic BillingBudget#pubsub_topic}
*/
readonly pubsubTopic?: string;
/**
* The schema version of the notification. Only "1.0" is
* accepted. It represents the JSON schema as defined in
* https://cloud.google.com/billing/docs/how-to/budgets#notification_format.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#schema_version BillingBudget#schema_version}
*/
readonly schemaVersion?: string;
}
export declare function billingBudgetAllUpdatesRuleToTerraform(struct?: BillingBudgetAllUpdatesRuleOutputReference | BillingBudgetAllUpdatesRule): any;
export declare function billingBudgetAllUpdatesRuleToHclTerraform(struct?: BillingBudgetAllUpdatesRuleOutputReference | BillingBudgetAllUpdatesRule): any;
export declare class BillingBudgetAllUpdatesRuleOutputReference 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(): BillingBudgetAllUpdatesRule | undefined;
set internalValue(value: BillingBudgetAllUpdatesRule | undefined);
private _disableDefaultIamRecipients?;
get disableDefaultIamRecipients(): boolean | cdktf.IResolvable;
set disableDefaultIamRecipients(value: boolean | cdktf.IResolvable);
resetDisableDefaultIamRecipients(): void;
get disableDefaultIamRecipientsInput(): boolean | cdktf.IResolvable | undefined;
private _enableProjectLevelRecipients?;
get enableProjectLevelRecipients(): boolean | cdktf.IResolvable;
set enableProjectLevelRecipients(value: boolean | cdktf.IResolvable);
resetEnableProjectLevelRecipients(): void;
get enableProjectLevelRecipientsInput(): boolean | cdktf.IResolvable | undefined;
private _monitoringNotificationChannels?;
get monitoringNotificationChannels(): string[];
set monitoringNotificationChannels(value: string[]);
resetMonitoringNotificationChannels(): void;
get monitoringNotificationChannelsInput(): string[] | undefined;
private _pubsubTopic?;
get pubsubTopic(): string;
set pubsubTopic(value: string);
resetPubsubTopic(): void;
get pubsubTopicInput(): string | undefined;
private _schemaVersion?;
get schemaVersion(): string;
set schemaVersion(value: string);
resetSchemaVersion(): void;
get schemaVersionInput(): string | undefined;
}
export interface BillingBudgetAmountSpecifiedAmount {
/**
* The 3-letter currency code defined in ISO 4217.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#currency_code BillingBudget#currency_code}
*/
readonly currencyCode?: string;
/**
* Number of nano (10^-9) units of the amount.
* The value must be between -999,999,999 and +999,999,999
* inclusive. If units is positive, nanos must be positive or
* zero. If units is zero, nanos can be positive, zero, or
* negative. If units is negative, nanos must be negative or
* zero. For example $-1.75 is represented as units=-1 and
* nanos=-750,000,000.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#nanos BillingBudget#nanos}
*/
readonly nanos?: number;
/**
* The whole units of the amount. For example if currencyCode
* is "USD", then 1 unit is one US dollar.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#units BillingBudget#units}
*/
readonly units?: string;
}
export declare function billingBudgetAmountSpecifiedAmountToTerraform(struct?: BillingBudgetAmountSpecifiedAmountOutputReference | BillingBudgetAmountSpecifiedAmount): any;
export declare function billingBudgetAmountSpecifiedAmountToHclTerraform(struct?: BillingBudgetAmountSpecifiedAmountOutputReference | BillingBudgetAmountSpecifiedAmount): any;
export declare class BillingBudgetAmountSpecifiedAmountOutputReference 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(): BillingBudgetAmountSpecifiedAmount | undefined;
set internalValue(value: BillingBudgetAmountSpecifiedAmount | undefined);
private _currencyCode?;
get currencyCode(): string;
set currencyCode(value: string);
resetCurrencyCode(): void;
get currencyCodeInput(): string | undefined;
private _nanos?;
get nanos(): number;
set nanos(value: number);
resetNanos(): void;
get nanosInput(): number | undefined;
private _units?;
get units(): string;
set units(value: string);
resetUnits(): void;
get unitsInput(): string | undefined;
}
export interface BillingBudgetAmount {
/**
* Configures a budget amount that is automatically set to 100% of
* last period's spend.
* Boolean. Set value to true to use. Do not set to false, instead
* use the 'specified_amount' block.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#last_period_amount BillingBudget#last_period_amount}
*/
readonly lastPeriodAmount?: boolean | cdktf.IResolvable;
/**
* specified_amount block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#specified_amount BillingBudget#specified_amount}
*/
readonly specifiedAmount?: BillingBudgetAmountSpecifiedAmount;
}
export declare function billingBudgetAmountToTerraform(struct?: BillingBudgetAmountOutputReference | BillingBudgetAmount): any;
export declare function billingBudgetAmountToHclTerraform(struct?: BillingBudgetAmountOutputReference | BillingBudgetAmount): any;
export declare class BillingBudgetAmountOutputReference 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(): BillingBudgetAmount | undefined;
set internalValue(value: BillingBudgetAmount | undefined);
private _lastPeriodAmount?;
get lastPeriodAmount(): boolean | cdktf.IResolvable;
set lastPeriodAmount(value: boolean | cdktf.IResolvable);
resetLastPeriodAmount(): void;
get lastPeriodAmountInput(): boolean | cdktf.IResolvable | undefined;
private _specifiedAmount;
get specifiedAmount(): BillingBudgetAmountSpecifiedAmountOutputReference;
putSpecifiedAmount(value: BillingBudgetAmountSpecifiedAmount): void;
resetSpecifiedAmount(): void;
get specifiedAmountInput(): BillingBudgetAmountSpecifiedAmount | undefined;
}
export interface BillingBudgetBudgetFilterCustomPeriodEndDate {
/**
* Day of a month. Must be from 1 to 31 and valid for the year and month.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#day BillingBudget#day}
*/
readonly day: number;
/**
* Month of a year. Must be from 1 to 12.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#month BillingBudget#month}
*/
readonly month: number;
/**
* Year of the date. Must be from 1 to 9999.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#year BillingBudget#year}
*/
readonly year: number;
}
export declare function billingBudgetBudgetFilterCustomPeriodEndDateToTerraform(struct?: BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference | BillingBudgetBudgetFilterCustomPeriodEndDate): any;
export declare function billingBudgetBudgetFilterCustomPeriodEndDateToHclTerraform(struct?: BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference | BillingBudgetBudgetFilterCustomPeriodEndDate): any;
export declare class BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference 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(): BillingBudgetBudgetFilterCustomPeriodEndDate | undefined;
set internalValue(value: BillingBudgetBudgetFilterCustomPeriodEndDate | undefined);
private _day?;
get day(): number;
set day(value: number);
get dayInput(): number | undefined;
private _month?;
get month(): number;
set month(value: number);
get monthInput(): number | undefined;
private _year?;
get year(): number;
set year(value: number);
get yearInput(): number | undefined;
}
export interface BillingBudgetBudgetFilterCustomPeriodStartDate {
/**
* Day of a month. Must be from 1 to 31 and valid for the year and month.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#day BillingBudget#day}
*/
readonly day: number;
/**
* Month of a year. Must be from 1 to 12.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#month BillingBudget#month}
*/
readonly month: number;
/**
* Year of the date. Must be from 1 to 9999.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#year BillingBudget#year}
*/
readonly year: number;
}
export declare function billingBudgetBudgetFilterCustomPeriodStartDateToTerraform(struct?: BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference | BillingBudgetBudgetFilterCustomPeriodStartDate): any;
export declare function billingBudgetBudgetFilterCustomPeriodStartDateToHclTerraform(struct?: BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference | BillingBudgetBudgetFilterCustomPeriodStartDate): any;
export declare class BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference 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(): BillingBudgetBudgetFilterCustomPeriodStartDate | undefined;
set internalValue(value: BillingBudgetBudgetFilterCustomPeriodStartDate | undefined);
private _day?;
get day(): number;
set day(value: number);
get dayInput(): number | undefined;
private _month?;
get month(): number;
set month(value: number);
get monthInput(): number | undefined;
private _year?;
get year(): number;
set year(value: number);
get yearInput(): number | undefined;
}
export interface BillingBudgetBudgetFilterCustomPeriod {
/**
* end_date block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#end_date BillingBudget#end_date}
*/
readonly endDate?: BillingBudgetBudgetFilterCustomPeriodEndDate;
/**
* start_date block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#start_date BillingBudget#start_date}
*/
readonly startDate: BillingBudgetBudgetFilterCustomPeriodStartDate;
}
export declare function billingBudgetBudgetFilterCustomPeriodToTerraform(struct?: BillingBudgetBudgetFilterCustomPeriodOutputReference | BillingBudgetBudgetFilterCustomPeriod): any;
export declare function billingBudgetBudgetFilterCustomPeriodToHclTerraform(struct?: BillingBudgetBudgetFilterCustomPeriodOutputReference | BillingBudgetBudgetFilterCustomPeriod): any;
export declare class BillingBudgetBudgetFilterCustomPeriodOutputReference 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(): BillingBudgetBudgetFilterCustomPeriod | undefined;
set internalValue(value: BillingBudgetBudgetFilterCustomPeriod | undefined);
private _endDate;
get endDate(): BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference;
putEndDate(value: BillingBudgetBudgetFilterCustomPeriodEndDate): void;
resetEndDate(): void;
get endDateInput(): BillingBudgetBudgetFilterCustomPeriodEndDate | undefined;
private _startDate;
get startDate(): BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference;
putStartDate(value: BillingBudgetBudgetFilterCustomPeriodStartDate): void;
get startDateInput(): BillingBudgetBudgetFilterCustomPeriodStartDate | undefined;
}
export interface BillingBudgetBudgetFilter {
/**
* A CalendarPeriod represents the abstract concept of a recurring time period that has a
* canonical start. Grammatically, "the start of the current CalendarPeriod".
* All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8).
*
* Exactly one of 'calendar_period', 'custom_period' must be provided. Possible values: ["MONTH", "QUARTER", "YEAR", "CALENDAR_PERIOD_UNSPECIFIED"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#calendar_period BillingBudget#calendar_period}
*/
readonly calendarPeriod?: string;
/**
* Optional. If creditTypesTreatment is INCLUDE_SPECIFIED_CREDITS,
* this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See a list of acceptable credit type values.
* If creditTypesTreatment is not INCLUDE_SPECIFIED_CREDITS, this field must be empty.
*
* **Note:** If the field has a value in the config and needs to be removed, the field has to be an empty array in the config.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#credit_types BillingBudget#credit_types}
*/
readonly creditTypes?: string[];
/**
* Specifies how credits should be treated when determining spend
* for threshold calculations. Default value: "INCLUDE_ALL_CREDITS" Possible values: ["INCLUDE_ALL_CREDITS", "EXCLUDE_ALL_CREDITS", "INCLUDE_SPECIFIED_CREDITS"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#credit_types_treatment BillingBudget#credit_types_treatment}
*/
readonly creditTypesTreatment?: string;
/**
* A single label and value pair specifying that usage from only
* this set of labeled resources should be included in the budget.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#labels BillingBudget#labels}
*/
readonly labels?: {
[key: string]: string;
};
/**
* A set of projects of the form projects/{project_number},
* specifying that usage from only this set of projects should be
* included in the budget. If omitted, the report will include
* all usage for the billing account, regardless of which project
* the usage occurred on.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#projects BillingBudget#projects}
*/
readonly projects?: string[];
/**
* A set of folder and organization names of the form folders/{folderId} or organizations/{organizationId},
* specifying that usage from only this set of folders and organizations should be included in the budget.
* If omitted, the budget includes all usage that the billing account pays for. If the folder or organization
* contains projects that are paid for by a different Cloud Billing account, the budget doesn't apply to those projects.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#resource_ancestors BillingBudget#resource_ancestors}
*/
readonly resourceAncestors?: string[];
/**
* A set of services of the form services/{service_id},
* specifying that usage from only this set of services should be
* included in the budget. If omitted, the report will include
* usage for all the services. The service names are available
* through the Catalog API:
* https://cloud.google.com/billing/v1/how-tos/catalog-api.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#services BillingBudget#services}
*/
readonly services?: string[];
/**
* A set of subaccounts of the form billingAccounts/{account_id},
* specifying that usage from only this set of subaccounts should
* be included in the budget. If a subaccount is set to the name of
* the parent account, usage from the parent account will be included.
* If the field is omitted, the report will include usage from the parent
* account and all subaccounts, if they exist.
*
* **Note:** If the field has a value in the config and needs to be removed, the field has to be an empty array in the config.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#subaccounts BillingBudget#subaccounts}
*/
readonly subaccounts?: string[];
/**
* custom_period block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#custom_period BillingBudget#custom_period}
*/
readonly customPeriod?: BillingBudgetBudgetFilterCustomPeriod;
}
export declare function billingBudgetBudgetFilterToTerraform(struct?: BillingBudgetBudgetFilterOutputReference | BillingBudgetBudgetFilter): any;
export declare function billingBudgetBudgetFilterToHclTerraform(struct?: BillingBudgetBudgetFilterOutputReference | BillingBudgetBudgetFilter): any;
export declare class BillingBudgetBudgetFilterOutputReference 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(): BillingBudgetBudgetFilter | undefined;
set internalValue(value: BillingBudgetBudgetFilter | undefined);
private _calendarPeriod?;
get calendarPeriod(): string;
set calendarPeriod(value: string);
resetCalendarPeriod(): void;
get calendarPeriodInput(): string | undefined;
private _creditTypes?;
get creditTypes(): string[];
set creditTypes(value: string[]);
resetCreditTypes(): void;
get creditTypesInput(): string[] | undefined;
private _creditTypesTreatment?;
get creditTypesTreatment(): string;
set creditTypesTreatment(value: string);
resetCreditTypesTreatment(): void;
get creditTypesTreatmentInput(): string | undefined;
private _labels?;
get labels(): {
[key: string]: string;
};
set labels(value: {
[key: string]: string;
});
resetLabels(): void;
get labelsInput(): {
[key: string]: string;
} | undefined;
private _projects?;
get projects(): string[];
set projects(value: string[]);
resetProjects(): void;
get projectsInput(): string[] | undefined;
private _resourceAncestors?;
get resourceAncestors(): string[];
set resourceAncestors(value: string[]);
resetResourceAncestors(): void;
get resourceAncestorsInput(): string[] | undefined;
private _services?;
get services(): string[];
set services(value: string[]);
resetServices(): void;
get servicesInput(): string[] | undefined;
private _subaccounts?;
get subaccounts(): string[];
set subaccounts(value: string[]);
resetSubaccounts(): void;
get subaccountsInput(): string[] | undefined;
private _customPeriod;
get customPeriod(): BillingBudgetBudgetFilterCustomPeriodOutputReference;
putCustomPeriod(value: BillingBudgetBudgetFilterCustomPeriod): void;
resetCustomPeriod(): void;
get customPeriodInput(): BillingBudgetBudgetFilterCustomPeriod | undefined;
}
export interface BillingBudgetThresholdRules {
/**
* The type of basis used to determine if spend has passed
* the threshold. Default value: "CURRENT_SPEND" Possible values: ["CURRENT_SPEND", "FORECASTED_SPEND"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#spend_basis BillingBudget#spend_basis}
*/
readonly spendBasis?: string;
/**
* Send an alert when this threshold is exceeded. This is a
* 1.0-based percentage, so 0.5 = 50%. Must be >= 0.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#threshold_percent BillingBudget#threshold_percent}
*/
readonly thresholdPercent: number;
}
export declare function billingBudgetThresholdRulesToTerraform(struct?: BillingBudgetThresholdRules | cdktf.IResolvable): any;
export declare function billingBudgetThresholdRulesToHclTerraform(struct?: BillingBudgetThresholdRules | cdktf.IResolvable): any;
export declare class BillingBudgetThresholdRulesOutputReference 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(): BillingBudgetThresholdRules | cdktf.IResolvable | undefined;
set internalValue(value: BillingBudgetThresholdRules | cdktf.IResolvable | undefined);
private _spendBasis?;
get spendBasis(): string;
set spendBasis(value: string);
resetSpendBasis(): void;
get spendBasisInput(): string | undefined;
private _thresholdPercent?;
get thresholdPercent(): number;
set thresholdPercent(value: number);
get thresholdPercentInput(): number | undefined;
}
export declare class BillingBudgetThresholdRulesList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: BillingBudgetThresholdRules[] | 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): BillingBudgetThresholdRulesOutputReference;
}
export interface BillingBudgetTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#create BillingBudget#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#delete BillingBudget#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#update BillingBudget#update}
*/
readonly update?: string;
}
export declare function billingBudgetTimeoutsToTerraform(struct?: BillingBudgetTimeouts | cdktf.IResolvable): any;
export declare function billingBudgetTimeoutsToHclTerraform(struct?: BillingBudgetTimeouts | cdktf.IResolvable): any;
export declare class BillingBudgetTimeoutsOutputReference 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(): BillingBudgetTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: BillingBudgetTimeouts | 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/billing_budget google_billing_budget}
*/
export declare class BillingBudget extends cdktf.TerraformResource {
static readonly tfResourceType = "google_billing_budget";
/**
* Generates CDKTF code for importing a BillingBudget 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 BillingBudget to import
* @param importFromId The id of the existing BillingBudget that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/billing_budget#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the BillingBudget 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/billing_budget google_billing_budget} 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 BillingBudgetConfig
*/
constructor(scope: Construct, id: string, config: BillingBudgetConfig);
private _billingAccount?;
get billingAccount(): string;
set billingAccount(value: string);
get billingAccountInput(): string | undefined;
private _displayName?;
get displayName(): string;
set displayName(value: string);
resetDisplayName(): void;
get displayNameInput(): string | undefined;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
get name(): string;
private _ownershipScope?;
get ownershipScope(): string;
set ownershipScope(value: string);
resetOwnershipScope(): void;
get ownershipScopeInput(): string | undefined;
private _allUpdatesRule;
get allUpdatesRule(): BillingBudgetAllUpdatesRuleOutputReference;
putAllUpdatesRule(value: BillingBudgetAllUpdatesRule): void;
resetAllUpdatesRule(): void;
get allUpdatesRuleInput(): BillingBudgetAllUpdatesRule | undefined;
private _amount;
get amount(): BillingBudgetAmountOutputReference;
putAmount(value: BillingBudgetAmount): void;
get amountInput(): BillingBudgetAmount | undefined;
private _budgetFilter;
get budgetFilter(): BillingBudgetBudgetFilterOutputReference;
putBudgetFilter(value: BillingBudgetBudgetFilter): void;
resetBudgetFilter(): void;
get budgetFilterInput(): BillingBudgetBudgetFilter | undefined;
private _thresholdRules;
get thresholdRules(): BillingBudgetThresholdRulesList;
putThresholdRules(value: BillingBudgetThresholdRules[] | cdktf.IResolvable): void;
resetThresholdRules(): void;
get thresholdRulesInput(): cdktf.IResolvable | BillingBudgetThresholdRules[] | undefined;
private _timeouts;
get timeouts(): BillingBudgetTimeoutsOutputReference;
putTimeouts(value: BillingBudgetTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | BillingBudgetTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}