{ "$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." } } } } }