{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/confluent/main/json-schema/confluent-kafka-quotas-v1-client-quota-schema.json",
"title": "kafka-quotas.v1.ClientQuota",
"description": "`ClientQuota` objects represent Client Quotas you can set at the service account level.\n\nThe API allows you to list, create, read, update, and delete your client quotas.\n\n\nRelated guide: [Client Quotas in Confluent Cloud](https://docs.confluent.io/cloud/current/clusters/client-quotas.html).\n\n## The Client Quotas Model\n",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/confluent-client-quotas-kafka-quotas-v1-api-openapi.yml#/components/schemas/kafka-quotas.v1.ClientQuota",
"type": "object",
"properties": {
"api_version": {
"type": "string",
"enum": [
"kafka-quotas/v1"
],
"description": "APIVersion defines the schema version of this representation of a resource.",
"readOnly": true
},
"kind": {
"type": "string",
"description": "Kind defines the object this REST resource represents.",
"readOnly": true,
"enum": [
"ClientQuota"
]
},
"id": {
"description": "ID is the \"natural identifier\" for an object within its scope/namespace; it is normally unique across time but not space. That is, you can assume that the ID will not be reclaimed and reused after an object is deleted (\"time\"); however, it may collide with IDs for other object `kinds` or objects of the same `kind` within a different scope/namespace (\"space\").",
"type": "string",
"maxLength": 255,
"readOnly": true
},
"metadata": {
"allOf": [
{
"$ref": "#/$defs/ObjectMeta"
},
{
"properties": {
"self": {},
"resource_name": {}
}
}
]
},
"spec": {
"$ref": "#/$defs/kafka-quotas.v1.ClientQuotaSpec"
}
},
"$defs": {
"EnvScopedObjectReference": {
"type": "object",
"description": "ObjectReference provides information for you to locate the referred object",
"required": [
"id",
"related",
"resource_name"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the referred resource",
"minLength": 1,
"maxLength": 255
},
"environment": {
"type": "string",
"description": "Environment of the referred resource, if env-scoped",
"minLength": 1,
"maxLength": 255
},
"related": {
"type": "string",
"format": "uri",
"description": "API URL for accessing or modifying the referred object",
"minLength": 1,
"readOnly": true
},
"resource_name": {
"type": "string",
"format": "uri",
"description": "CRN reference to the referred resource",
"minLength": 1,
"readOnly": true
}
}
},
"GlobalObjectReference": {
"type": "object",
"description": "ObjectReference provides information for you to locate the referred object",
"required": [
"id",
"related",
"resource_name"
],
"properties": {
"id": {
"type": "string",
"description": "ID of the referred resource",
"minLength": 1,
"maxLength": 255
},
"related": {
"type": "string",
"format": "uri",
"description": "API URL for accessing or modifying the referred object",
"minLength": 1,
"readOnly": true
},
"resource_name": {
"type": "string",
"format": "uri",
"description": "CRN reference to the referred resource",
"minLength": 1,
"readOnly": true
}
}
},
"ObjectMeta": {
"description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
"required": [
"self"
],
"properties": {
"self": {
"description": "Self is a Uniform Resource Locator (URL) at which an object can be addressed. This URL encodes the service location, API version, and other particulars necessary to locate the resource at a point in time",
"type": "string",
"format": "uri",
"readOnly": true
},
"resource_name": {
"description": "Resource Name is a Uniform Resource Identifier (URI) that is globally unique across space and time. It is represented as a Confluent Resource Name",
"type": "string",
"format": "uri",
"readOnly": true
},
"created_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "The date and time at which this object was created. It is represented in RFC3339 format and is in UTC."
},
"updated_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "The date and time at which this object was last updated. It is represented in RFC3339 format and is in UTC."
},
"deleted_at": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "The date and time at which this object was (or will be) deleted. It is represented in RFC3339 format and is in UTC."
}
},
"readOnly": true
},
"kafka-quotas.v1.ClientQuotaSpec": {
"type": "object",
"description": "The desired state of the Client Quota",
"properties": {
"display_name": {
"type": "string",
"description": "The name of the client quota."
},
"description": {
"type": "string",
"description": "A human readable description for the client quota."
},
"throughput": {
"type": "object",
"description": "Throughput for the client quota.",
"allOf": [
{
"$ref": "#/$defs/kafka-quotas.v1.Throughput"
}
]
},
"cluster": {
"allOf": [
{
"$ref": "#/$defs/EnvScopedObjectReference"
}
],
"description": "The ID of the Dedicated Kafka cluster where the client quota is applied.\n",
"x-immutable": true
},
"principals": {
"type": "array",
"items": {
"$ref": "#/$defs/GlobalObjectReference"
},
"description": "A list of principals to apply a client quota to.\nUse `\"\"` to apply a client quota to all service accounts\n(see [Control application usage with Client Quotas](https://docs.confluent.io/cloud/current/clusters/client-quotas.html#control-application-usage-with-client-quotas) for more details).\n",
"minItems": 1
},
"environment": {
"allOf": [
{
"$ref": "#/$defs/GlobalObjectReference"
}
],
"description": "The environment to which this belongs.",
"x-immutable": true
}
},
"x-enable-id": true,
"x-enable-listmeta": true,
"x-enable-objectmeta": true
},
"kafka-quotas.v1.Throughput": {
"description": "Quotas on maximum throughput",
"required": [
"ingress_byte_rate",
"egress_byte_rate"
],
"properties": {
"ingress_byte_rate": {
"type": "string",
"format": "int64",
"description": "Ingress throughput limit for principals specified in bytes per second."
},
"egress_byte_rate": {
"type": "string",
"format": "int64",
"description": "Egress throughput limit for principals specified in bytes per second."
}
}
}
}
}