BILLINGBUDGETS

billingbudgets.billingAccounts.budgets.create

enum_GoogleCloudBillingBudgetsV1BudgetOwnershipScope := [ "OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT" ]
enum_GoogleCloudBillingBudgetsV1FilterCalendarPeriod := [ "CALENDAR_PERIOD_UNSPECIFIED", "MONTH", "QUARTER", "YEAR" ]
enum_GoogleCloudBillingBudgetsV1FilterCreditTypesTreatment := [ "CREDIT_TYPES_TREATMENT_UNSPECIFIED", "INCLUDE_ALL_CREDITS", "EXCLUDE_ALL_CREDITS", "INCLUDE_SPECIFIED_CREDITS" ]
enum_GoogleCloudBillingBudgetsV1ThresholdRuleSpendBasis := [ "BASIS_UNSPECIFIED", "CURRENT_SPEND", "FORECASTED_SPEND" ]

valid {
    input.Body.amount.lastPeriodAmount.STRING == STRING
    input.Body.amount.specifiedAmount.currencyCode == STRING
    input.Body.amount.specifiedAmount.nanos == INTEGER
    input.Body.amount.specifiedAmount.units == STRING
    input.Body.budgetFilter.calendarPeriod == enum_GoogleCloudBillingBudgetsV1FilterCalendarPeriod[_]
    input.Body.budgetFilter.creditTypes[_] == STRING
    input.Body.budgetFilter.creditTypesTreatment == enum_GoogleCloudBillingBudgetsV1FilterCreditTypesTreatment[_]
    input.Body.budgetFilter.customPeriod.endDate.day == INTEGER
    input.Body.budgetFilter.customPeriod.endDate.month == INTEGER
    input.Body.budgetFilter.customPeriod.endDate.year == INTEGER
    input.Body.budgetFilter.customPeriod.startDate.day == INTEGER
    input.Body.budgetFilter.customPeriod.startDate.month == INTEGER
    input.Body.budgetFilter.customPeriod.startDate.year == INTEGER
    input.Body.budgetFilter.labels.STRING[_] == ANY
    input.Body.budgetFilter.projects[_] == STRING
    input.Body.budgetFilter.resourceAncestors[_] == STRING
    input.Body.budgetFilter.services[_] == STRING
    input.Body.budgetFilter.subaccounts[_] == STRING
    input.Body.displayName == STRING
    input.Body.etag == STRING
    input.Body.notificationsRule.disableDefaultIamRecipients == BOOLEAN
    input.Body.notificationsRule.enableProjectLevelRecipients == BOOLEAN
    input.Body.notificationsRule.monitoringNotificationChannels[_] == STRING
    input.Body.notificationsRule.pubsubTopic == STRING
    input.Body.notificationsRule.schemaVersion == STRING
    input.Body.ownershipScope == enum_GoogleCloudBillingBudgetsV1BudgetOwnershipScope[_]
    input.Body.thresholdRules[_].spendBasis == enum_GoogleCloudBillingBudgetsV1ThresholdRuleSpendBasis[_]
    input.Body.thresholdRules[_].thresholdPercent == NUMBER
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

billingbudgets.billingAccounts.budgets.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

billingbudgets.billingAccounts.budgets.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

billingbudgets.billingAccounts.budgets.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.scope == STRING
    input.ProviderMetadata.Region == STRING
}

billingbudgets.billingAccounts.budgets.patch

enum_GoogleCloudBillingBudgetsV1BudgetOwnershipScope := [ "OWNERSHIP_SCOPE_UNSPECIFIED", "ALL_USERS", "BILLING_ACCOUNT" ]
enum_GoogleCloudBillingBudgetsV1FilterCalendarPeriod := [ "CALENDAR_PERIOD_UNSPECIFIED", "MONTH", "QUARTER", "YEAR" ]
enum_GoogleCloudBillingBudgetsV1FilterCreditTypesTreatment := [ "CREDIT_TYPES_TREATMENT_UNSPECIFIED", "INCLUDE_ALL_CREDITS", "EXCLUDE_ALL_CREDITS", "INCLUDE_SPECIFIED_CREDITS" ]
enum_GoogleCloudBillingBudgetsV1ThresholdRuleSpendBasis := [ "BASIS_UNSPECIFIED", "CURRENT_SPEND", "FORECASTED_SPEND" ]

valid {
    input.Body.amount.lastPeriodAmount.STRING == STRING
    input.Body.amount.specifiedAmount.currencyCode == STRING
    input.Body.amount.specifiedAmount.nanos == INTEGER
    input.Body.amount.specifiedAmount.units == STRING
    input.Body.budgetFilter.calendarPeriod == enum_GoogleCloudBillingBudgetsV1FilterCalendarPeriod[_]
    input.Body.budgetFilter.creditTypes[_] == STRING
    input.Body.budgetFilter.creditTypesTreatment == enum_GoogleCloudBillingBudgetsV1FilterCreditTypesTreatment[_]
    input.Body.budgetFilter.customPeriod.endDate.day == INTEGER
    input.Body.budgetFilter.customPeriod.endDate.month == INTEGER
    input.Body.budgetFilter.customPeriod.endDate.year == INTEGER
    input.Body.budgetFilter.customPeriod.startDate.day == INTEGER
    input.Body.budgetFilter.customPeriod.startDate.month == INTEGER
    input.Body.budgetFilter.customPeriod.startDate.year == INTEGER
    input.Body.budgetFilter.labels.STRING[_] == ANY
    input.Body.budgetFilter.projects[_] == STRING
    input.Body.budgetFilter.resourceAncestors[_] == STRING
    input.Body.budgetFilter.services[_] == STRING
    input.Body.budgetFilter.subaccounts[_] == STRING
    input.Body.displayName == STRING
    input.Body.etag == STRING
    input.Body.notificationsRule.disableDefaultIamRecipients == BOOLEAN
    input.Body.notificationsRule.enableProjectLevelRecipients == BOOLEAN
    input.Body.notificationsRule.monitoringNotificationChannels[_] == STRING
    input.Body.notificationsRule.pubsubTopic == STRING
    input.Body.notificationsRule.schemaVersion == STRING
    input.Body.ownershipScope == enum_GoogleCloudBillingBudgetsV1BudgetOwnershipScope[_]
    input.Body.thresholdRules[_].spendBasis == enum_GoogleCloudBillingBudgetsV1ThresholdRuleSpendBasis[_]
    input.Body.thresholdRules[_].thresholdPercent == NUMBER
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}