final case class Quota(limits: Seq[QuotaLimit] = _root_.scala.Seq.empty, metricRules: Seq[MetricRule] = _root_.scala.Seq.empty, unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[Quota] with Product with Serializable

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
limits

List of QuotaLimit definitions for the service.

metricRules

List of MetricRule definitions, each one mapping a selected method to one or more metrics.

Annotations
@SerialVersionUID()
Linear Supertypes
Product, Equals, Updatable[Quota], GeneratedMessage, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Quota
  2. Product
  3. Equals
  4. Updatable
  5. GeneratedMessage
  6. Serializable
  7. Serializable
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Quota(limits: Seq[QuotaLimit] = _root_.scala.Seq.empty, metricRules: Seq[MetricRule] = _root_.scala.Seq.empty, unknownFields: UnknownFieldSet = ...)

    limits

    List of QuotaLimit definitions for the service.

    metricRules

    List of MetricRule definitions, each one mapping a selected method to one or more metrics.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addAllLimits(__vs: Iterable[QuotaLimit]): Quota
  5. def addAllMetricRules(__vs: Iterable[MetricRule]): Quota
  6. def addLimits(__vs: QuotaLimit*): Quota
  7. def addMetricRules(__vs: MetricRule*): Quota
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def clearLimits: Quota
  10. def clearMetricRules: Quota
  11. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  12. def companion: Quota.type
    Definition Classes
    Quota → GeneratedMessage
  13. def discardUnknownFields: Quota
  14. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  16. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. def getField(__field: FieldDescriptor): PValue
    Definition Classes
    Quota → GeneratedMessage
  18. def getFieldByNumber(__fieldNumber: Int): Any
    Definition Classes
    Quota → GeneratedMessage
  19. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  20. val limits: Seq[QuotaLimit]
  21. val metricRules: Seq[MetricRule]
  22. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. def serializedSize: Int
    Definition Classes
    Quota → GeneratedMessage
  26. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  27. final def toByteArray: Array[Byte]
    Definition Classes
    GeneratedMessage
  28. final def toByteString: ByteString
    Definition Classes
    GeneratedMessage
  29. final def toPMessage: PMessage
    Definition Classes
    GeneratedMessage
  30. def toProtoString: String
    Definition Classes
    Quota → GeneratedMessage
  31. val unknownFields: UnknownFieldSet
  32. def update(ms: (Lens[Quota, Quota]) ⇒ Mutation[Quota]*): Quota
    Definition Classes
    Updatable
  33. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  36. def withLimits(__v: Seq[QuotaLimit]): Quota
  37. def withMetricRules(__v: Seq[MetricRule]): Quota
  38. def withUnknownFields(__v: UnknownFieldSet): Quota
  39. final def writeDelimitedTo(output: OutputStream): Unit
    Definition Classes
    GeneratedMessage
  40. def writeTo(_output__: CodedOutputStream): Unit
    Definition Classes
    Quota → GeneratedMessage
  41. final def writeTo(output: OutputStream): Unit
    Definition Classes
    GeneratedMessage

Inherited from Product

Inherited from Equals

Inherited from Updatable[Quota]

Inherited from GeneratedMessage

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped