
com.pulumi.googlenative.servicemanagement.v1.kotlin.inputs.QuotaArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-google-native-kotlin Show documentation
Show all versions of pulumi-google-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.servicemanagement.v1.kotlin.inputs
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.servicemanagement.v1.inputs.QuotaArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: "1/min/{project}" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: "*" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64
* @property limits List of QuotaLimit definitions for the service.
* @property metricRules List of MetricRule definitions, each one mapping a selected method to one or more metrics.
*/
public data class QuotaArgs(
public val limits: Output>? = null,
public val metricRules: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.servicemanagement.v1.inputs.QuotaArgs =
com.pulumi.googlenative.servicemanagement.v1.inputs.QuotaArgs.builder()
.limits(limits?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.metricRules(
metricRules?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
).build()
}
/**
* Builder for [QuotaArgs].
*/
@PulumiTagMarker
public class QuotaArgsBuilder internal constructor() {
private var limits: Output>? = null
private var metricRules: Output>? = null
/**
* @param value List of QuotaLimit definitions for the service.
*/
@JvmName("ymqvditpcyuhjvsi")
public suspend fun limits(`value`: Output>) {
this.limits = value
}
@JvmName("fpsejauwanchysmf")
public suspend fun limits(vararg values: Output) {
this.limits = Output.all(values.asList())
}
/**
* @param values List of QuotaLimit definitions for the service.
*/
@JvmName("bcvdovanmlwgstes")
public suspend fun limits(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy