CLOUDBILLING

cloudbilling.billingAccounts.create

valid {
    input.Body.displayName == STRING
    input.Body.masterBillingAccount == STRING
    input.Qs.parent == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.billingAccounts.estimateCostScenario

enum_CacheFillRegionsDestinationRegion := [ "CACHE_FILL_DESTINATION_REGION_UNSPECIFIED", "CACHE_FILL_DESTINATION_REGION_ASIA_PACIFIC", "CACHE_FILL_DESTINATION_REGION_EUROPE", "CACHE_FILL_DESTINATION_REGION_NORTH_AMERICA", "CACHE_FILL_DESTINATION_REGION_OCEANIA", "CACHE_FILL_DESTINATION_REGION_SOUTH_AMERICA", "CACHE_FILL_DESTINATION_REGION_CHINA", "CACHE_FILL_DESTINATION_REGION_OTHERS" ]
enum_CacheFillRegionsSourceRegion := [ "CACHE_FILL_SOURCE_REGION_UNSPECIFIED", "CACHE_FILL_REGION_ASIA_PACIFIC", "CACHE_FILL_SOURCE_REGION_EUROPE", "CACHE_FILL_SOURCE_REGION_NORTH_AMERICA", "CACHE_FILL_SOURCE_REGION_OCEANIA", "CACHE_FILL_SOURCE_REGION_SOUTH_AMERICA" ]
enum_CloudCdnEgressWorkloadCacheEgressDestination := [ "CACHE_EGRESS_DESTINATION_UNSPECIFIED", "CACHE_EGRESS_DESTINATION_ASIA_PACIFIC", "CACHE_EGRESS_DESTINATION_CHINA", "CACHE_EGRESS_DESTINATION_EUROPE", "CACHE_EGRESS_DESTINATION_NORTH_AMERICA", "CACHE_EGRESS_DESTINATION_OCEANIA", "CACHE_EGRESS_DESTINATION_LATIN_AMERICA", "CACHE_EGRESS_DESTINATION_OTHER_DESTINATIONS" ]
enum_CloudCdnWorkloadCacheFillOriginService := [ "CACHE_FILL_ORIGIN_SERVICE_UNSPECIFIED", "CACHE_FILL_ORIGIN_SERVICE_GOOGLE_CLOUD_STORAGE_BUCKET", "CACHE_FILL_ORIGIN_SERVICE_BACKEND_SERVICE" ]
enum_CloudInterconnectEgressWorkloadInterconnectConnectionLocation := [ "INTERCONNECT_CONNECTION_LOCATION_UNSPECIFIED", "INTERCONNECT_CONNECTION_LOCATION_ASIA", "INTERCONNECT_CONNECTION_LOCATION_EUROPE", "INTERCONNECT_CONNECTION_LOCATION_NORTH_AMERICA", "INTERCONNECT_CONNECTION_LOCATION_SOUTH_AMERICA", "INTERCONNECT_CONNECTION_LOCATION_AUSTRALIA" ]
enum_CloudInterconnectWorkloadInterconnectType := [ "INTERCONNECT_TYPE_UNSPECIFIED", "INTERCONNECT_TYPE_DEDICATED", "INTERCONNECT_TYPE_PARTNER" ]
enum_CloudInterconnectWorkloadLinkType := [ "LINK_TYPE_UNSPECIFIED", "LINK_TYPE_ETHERNET_10G_LR", "LINK_TYPE_ETHERNET_100G_LR" ]
enum_CloudStorageEgressWorkloadDestinationContinent := [ "DESTINATION_CONTINENT_UNSPECIFIED", "DESTINATION_CONTINENT_ASIA_PACIFIC", "DESTINATION_CONTINENT_AUTRALIA", "DESTINATION_CONTINENT_EUROPE", "DESTINATION_CONTINENT_NORTH_AMERICA", "DESTINATION_CONTINENT_SOUTH_AMERICA" ]
enum_CloudStorageEgressWorkloadSourceContinent := [ "SOURCE_CONTINENT_UNSPECIFIED", "SOURCE_CONTINENT_ASIA_PACIFIC", "SOURCE_CONTINENT_AUSTRALIA", "SOURCE_CONTINENT_EUROPE", "SOURCE_CONTINENT_NORTH_AMERICA", "SOURCE_CONTINENT_SOUTH_AMERICA" ]
enum_PersistentDiskScope := [ "SCOPE_UNSPECIFIED", "SCOPE_ZONAL", "SCOPE_REGIONAL" ]
enum_PremiumTierEgressWorkloadDestinationContinent := [ "DESTINATION_CONTINENT_UNSPECIFIED", "DESTINATION_CONTINENT_ASIA_PACIFIC", "DESTINATION_CONTINENT_AFRICA", "DESTINATION_CONTINENT_NORTH_AMERICA", "DESTINATION_CONTINENT_AUTRALIA", "DESTINATION_CONTINENT_CENTRAL_AMERICA", "DESTINATION_CONTINENT_CHINA", "DESTINATION_CONTINENT_EASTERN_EUROPE", "DESTINATION_CONTINENT_WESTERN_EUROPE", "DESTINATION_CONTINENT_EMEA", "DESTINATION_CONTINENT_INDIA", "DESTINATION_CONTINENT_MIDDLE_EAST", "DESTINATION_CONTINENT_SOUTH_AMERICA" ]
enum_VlanAttachmentBandwidth := [ "BANDWIDTH_UNSPECIFIED", "BANDWIDTH_BPS_50M", "BANDWIDTH_BPS_100M", "BANDWIDTH_BPS_200M", "BANDWIDTH_BPS_300M", "BANDWIDTH_BPS_400M", "BANDWIDTH_BPS_500M", "BANDWIDTH_BPS_1G", "BANDWIDTH_BPS_2G", "BANDWIDTH_BPS_5G", "BANDWIDTH_BPS_10G", "BANDWIDTH_BPS_20G", "BANDWIDTH_BPS_50G" ]
enum_VmResourceBasedCudPlan := [ "COMMITMENT_PLAN_UNSPECIFIED", "TWELVE_MONTH", "THIRTY_SIX_MONTH" ]

valid {
    input.Body.costScenario.commitments[_].name == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.guestAccelerator.acceleratorCount == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.guestAccelerator.acceleratorType == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.machineSeries == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.memorySizeGb == NUMBER
    input.Body.costScenario.commitments[_].vmResourceBasedCud.plan == enum_VmResourceBasedCudPlan[_]
    input.Body.costScenario.commitments[_].vmResourceBasedCud.region == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.virtualCpuCount == STRING
    input.Body.costScenario.scenarioConfig.estimateDuration == STRING
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressDestination == enum_CloudCdnEgressWorkloadCacheEgressDestination[_]
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillOriginService == enum_CloudCdnWorkloadCacheFillOriginService[_]
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRegions.destinationRegion == enum_CacheFillRegionsDestinationRegion[_]
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRegions.sourceRegion == enum_CacheFillRegionsSourceRegion[_]
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheLookUpRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheLookUpRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheLookUpRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.interconnectConnectionLocation == enum_CloudInterconnectEgressWorkloadInterconnectConnectionLocation[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].bandwidth == enum_VlanAttachmentBandwidth[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].vlanCount.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].vlanCount.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].vlanCount.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectType == enum_CloudInterconnectWorkloadInterconnectType[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.linkType == enum_CloudInterconnectWorkloadLinkType[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.provisionedLinkCount.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.provisionedLinkCount.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.provisionedLinkCount.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.destinationContinent == enum_CloudStorageEgressWorkloadDestinationContinent[_]
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.sourceContinent == enum_CloudStorageEgressWorkloadSourceContinent[_]
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataRetrieval.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataRetrieval.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataRetrieval.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataStored.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataStored.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataStored.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dualRegion.name == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.multiRegion.name == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationA.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationA.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationA.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationB.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationB.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationB.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.region.name == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.storageClass == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.enableConfidentialCompute == BOOLEAN
    input.Body.costScenario.workloads[_].computeVmWorkload.guestAccelerator.acceleratorCount == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.guestAccelerator.acceleratorType == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.instancesRunning.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.instancesRunning.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.instancesRunning.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.licenses[_] == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.customMachineType.machineSeries == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.customMachineType.memorySizeGb == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.customMachineType.virtualCpuCount == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.predefinedMachineType.machineType == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskSize.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskSize.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskSize.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskType == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].provisionedIops.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].provisionedIops.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].provisionedIops.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].scope == enum_PersistentDiskScope[_]
    input.Body.costScenario.workloads[_].computeVmWorkload.preemptible == BOOLEAN
    input.Body.costScenario.workloads[_].computeVmWorkload.region == STRING
    input.Body.costScenario.workloads[_].name == STRING
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.destinationContinent == enum_PremiumTierEgressWorkloadDestinationContinent[_]
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.sourceRegion == STRING
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.sourceRegion == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.destinationRegion == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.sourceRegion == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.intraRegionEgress.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.intraRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.intraRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.ReqMap.billingAccount == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.billingAccounts.get

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

cloudbilling.billingAccounts.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

cloudbilling.billingAccounts.list

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

cloudbilling.billingAccounts.move

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

cloudbilling.billingAccounts.patch

valid {
    input.Body.displayName == STRING
    input.Body.masterBillingAccount == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.billingAccounts.projects.list

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

cloudbilling.billingAccounts.services.get

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

cloudbilling.billingAccounts.services.list

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

cloudbilling.billingAccounts.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.billingAccounts.skuGroups.get

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

cloudbilling.billingAccounts.skuGroups.list

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

cloudbilling.billingAccounts.skuGroups.skus.get

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

cloudbilling.billingAccounts.skuGroups.skus.list

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

cloudbilling.billingAccounts.skus.get

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

cloudbilling.billingAccounts.skus.list

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

cloudbilling.billingAccounts.skus.price.get

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

cloudbilling.billingAccounts.skus.prices.list

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

cloudbilling.billingAccounts.subAccounts.create

valid {
    input.Body.displayName == STRING
    input.Body.masterBillingAccount == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.billingAccounts.subAccounts.list

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

cloudbilling.billingAccounts.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.estimateCostScenario

enum_CacheFillRegionsDestinationRegion := [ "CACHE_FILL_DESTINATION_REGION_UNSPECIFIED", "CACHE_FILL_DESTINATION_REGION_ASIA_PACIFIC", "CACHE_FILL_DESTINATION_REGION_EUROPE", "CACHE_FILL_DESTINATION_REGION_NORTH_AMERICA", "CACHE_FILL_DESTINATION_REGION_OCEANIA", "CACHE_FILL_DESTINATION_REGION_SOUTH_AMERICA", "CACHE_FILL_DESTINATION_REGION_CHINA", "CACHE_FILL_DESTINATION_REGION_OTHERS" ]
enum_CacheFillRegionsSourceRegion := [ "CACHE_FILL_SOURCE_REGION_UNSPECIFIED", "CACHE_FILL_REGION_ASIA_PACIFIC", "CACHE_FILL_SOURCE_REGION_EUROPE", "CACHE_FILL_SOURCE_REGION_NORTH_AMERICA", "CACHE_FILL_SOURCE_REGION_OCEANIA", "CACHE_FILL_SOURCE_REGION_SOUTH_AMERICA" ]
enum_CloudCdnEgressWorkloadCacheEgressDestination := [ "CACHE_EGRESS_DESTINATION_UNSPECIFIED", "CACHE_EGRESS_DESTINATION_ASIA_PACIFIC", "CACHE_EGRESS_DESTINATION_CHINA", "CACHE_EGRESS_DESTINATION_EUROPE", "CACHE_EGRESS_DESTINATION_NORTH_AMERICA", "CACHE_EGRESS_DESTINATION_OCEANIA", "CACHE_EGRESS_DESTINATION_LATIN_AMERICA", "CACHE_EGRESS_DESTINATION_OTHER_DESTINATIONS" ]
enum_CloudCdnWorkloadCacheFillOriginService := [ "CACHE_FILL_ORIGIN_SERVICE_UNSPECIFIED", "CACHE_FILL_ORIGIN_SERVICE_GOOGLE_CLOUD_STORAGE_BUCKET", "CACHE_FILL_ORIGIN_SERVICE_BACKEND_SERVICE" ]
enum_CloudInterconnectEgressWorkloadInterconnectConnectionLocation := [ "INTERCONNECT_CONNECTION_LOCATION_UNSPECIFIED", "INTERCONNECT_CONNECTION_LOCATION_ASIA", "INTERCONNECT_CONNECTION_LOCATION_EUROPE", "INTERCONNECT_CONNECTION_LOCATION_NORTH_AMERICA", "INTERCONNECT_CONNECTION_LOCATION_SOUTH_AMERICA", "INTERCONNECT_CONNECTION_LOCATION_AUSTRALIA" ]
enum_CloudInterconnectWorkloadInterconnectType := [ "INTERCONNECT_TYPE_UNSPECIFIED", "INTERCONNECT_TYPE_DEDICATED", "INTERCONNECT_TYPE_PARTNER" ]
enum_CloudInterconnectWorkloadLinkType := [ "LINK_TYPE_UNSPECIFIED", "LINK_TYPE_ETHERNET_10G_LR", "LINK_TYPE_ETHERNET_100G_LR" ]
enum_CloudStorageEgressWorkloadDestinationContinent := [ "DESTINATION_CONTINENT_UNSPECIFIED", "DESTINATION_CONTINENT_ASIA_PACIFIC", "DESTINATION_CONTINENT_AUTRALIA", "DESTINATION_CONTINENT_EUROPE", "DESTINATION_CONTINENT_NORTH_AMERICA", "DESTINATION_CONTINENT_SOUTH_AMERICA" ]
enum_CloudStorageEgressWorkloadSourceContinent := [ "SOURCE_CONTINENT_UNSPECIFIED", "SOURCE_CONTINENT_ASIA_PACIFIC", "SOURCE_CONTINENT_AUSTRALIA", "SOURCE_CONTINENT_EUROPE", "SOURCE_CONTINENT_NORTH_AMERICA", "SOURCE_CONTINENT_SOUTH_AMERICA" ]
enum_PersistentDiskScope := [ "SCOPE_UNSPECIFIED", "SCOPE_ZONAL", "SCOPE_REGIONAL" ]
enum_PremiumTierEgressWorkloadDestinationContinent := [ "DESTINATION_CONTINENT_UNSPECIFIED", "DESTINATION_CONTINENT_ASIA_PACIFIC", "DESTINATION_CONTINENT_AFRICA", "DESTINATION_CONTINENT_NORTH_AMERICA", "DESTINATION_CONTINENT_AUTRALIA", "DESTINATION_CONTINENT_CENTRAL_AMERICA", "DESTINATION_CONTINENT_CHINA", "DESTINATION_CONTINENT_EASTERN_EUROPE", "DESTINATION_CONTINENT_WESTERN_EUROPE", "DESTINATION_CONTINENT_EMEA", "DESTINATION_CONTINENT_INDIA", "DESTINATION_CONTINENT_MIDDLE_EAST", "DESTINATION_CONTINENT_SOUTH_AMERICA" ]
enum_VlanAttachmentBandwidth := [ "BANDWIDTH_UNSPECIFIED", "BANDWIDTH_BPS_50M", "BANDWIDTH_BPS_100M", "BANDWIDTH_BPS_200M", "BANDWIDTH_BPS_300M", "BANDWIDTH_BPS_400M", "BANDWIDTH_BPS_500M", "BANDWIDTH_BPS_1G", "BANDWIDTH_BPS_2G", "BANDWIDTH_BPS_5G", "BANDWIDTH_BPS_10G", "BANDWIDTH_BPS_20G", "BANDWIDTH_BPS_50G" ]
enum_VmResourceBasedCudPlan := [ "COMMITMENT_PLAN_UNSPECIFIED", "TWELVE_MONTH", "THIRTY_SIX_MONTH" ]

valid {
    input.Body.costScenario.commitments[_].name == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.guestAccelerator.acceleratorCount == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.guestAccelerator.acceleratorType == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.machineSeries == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.memorySizeGb == NUMBER
    input.Body.costScenario.commitments[_].vmResourceBasedCud.plan == enum_VmResourceBasedCudPlan[_]
    input.Body.costScenario.commitments[_].vmResourceBasedCud.region == STRING
    input.Body.costScenario.commitments[_].vmResourceBasedCud.virtualCpuCount == STRING
    input.Body.costScenario.scenarioConfig.estimateDuration == STRING
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressDestination == enum_CloudCdnEgressWorkloadCacheEgressDestination[_]
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudCdnEgressWorkload.cacheEgressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillOriginService == enum_CloudCdnWorkloadCacheFillOriginService[_]
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRegions.destinationRegion == enum_CacheFillRegionsDestinationRegion[_]
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheFillRegions.sourceRegion == enum_CacheFillRegionsSourceRegion[_]
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheLookUpRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheLookUpRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudCdnWorkload.cacheLookUpRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudInterconnectEgressWorkload.interconnectConnectionLocation == enum_CloudInterconnectEgressWorkloadInterconnectConnectionLocation[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].bandwidth == enum_VlanAttachmentBandwidth[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].vlanCount.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].vlanCount.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectAttachments[_].vlanCount.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.interconnectType == enum_CloudInterconnectWorkloadInterconnectType[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.linkType == enum_CloudInterconnectWorkloadLinkType[_]
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.provisionedLinkCount.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.provisionedLinkCount.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudInterconnectWorkload.provisionedLinkCount.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.destinationContinent == enum_CloudStorageEgressWorkloadDestinationContinent[_]
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageEgressWorkload.sourceContinent == enum_CloudStorageEgressWorkloadSourceContinent[_]
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataRetrieval.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataRetrieval.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataRetrieval.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataStored.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataStored.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dataStored.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.dualRegion.name == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.multiRegion.name == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationA.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationA.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationA.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationB.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationB.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.operationB.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].cloudStorageWorkload.region.name == STRING
    input.Body.costScenario.workloads[_].cloudStorageWorkload.storageClass == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.enableConfidentialCompute == BOOLEAN
    input.Body.costScenario.workloads[_].computeVmWorkload.guestAccelerator.acceleratorCount == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.guestAccelerator.acceleratorType == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.instancesRunning.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.instancesRunning.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.instancesRunning.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.licenses[_] == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.customMachineType.machineSeries == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.customMachineType.memorySizeGb == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.customMachineType.virtualCpuCount == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.machineType.predefinedMachineType.machineType == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskSize.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskSize.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskSize.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].diskType == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].provisionedIops.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].provisionedIops.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].provisionedIops.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].computeVmWorkload.persistentDisks[_].scope == enum_PersistentDiskScope[_]
    input.Body.costScenario.workloads[_].computeVmWorkload.preemptible == BOOLEAN
    input.Body.costScenario.workloads[_].computeVmWorkload.region == STRING
    input.Body.costScenario.workloads[_].name == STRING
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.destinationContinent == enum_PremiumTierEgressWorkloadDestinationContinent[_]
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].premiumTierEgressWorkload.sourceRegion == STRING
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].standardTierEgressWorkload.sourceRegion == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.destinationRegion == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.interRegionEgress.sourceRegion == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.intraRegionEgress.egressRate.usageRateTimeline.unit == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.intraRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].effectiveTime.estimationTimeFrameOffset == STRING
    input.Body.costScenario.workloads[_].vmToVmEgressWorkload.intraRegionEgress.egressRate.usageRateTimeline.usageRateTimelineEntries[_].usageRate == NUMBER
    input.ProviderMetadata.Region == STRING
}

cloudbilling.organizations.billingAccounts.create

valid {
    input.Body.displayName == STRING
    input.Body.masterBillingAccount == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.organizations.billingAccounts.list

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

cloudbilling.organizations.billingAccounts.move

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

cloudbilling.projects.getBillingInfo

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

cloudbilling.projects.updateBillingInfo

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

cloudbilling.services.list

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

cloudbilling.services.skus.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.currencyCode == STRING
    input.Qs.endTime == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.startTime == STRING
    input.ProviderMetadata.Region == STRING
}

cloudbilling.skuGroups.get

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

cloudbilling.skuGroups.list

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

cloudbilling.skuGroups.skus.get

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

cloudbilling.skuGroups.skus.list

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

cloudbilling.skus.price.get

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

cloudbilling.skus.prices.list

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