{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/chronosphere/main/json-schema/chronosphere-configv1-create-consumption-config-response-schema.json", "title": "configv1CreateConsumptionConfigResponse", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/chronosphere-consumptionconfig-api-openapi.yml#/components/schemas/configv1CreateConsumptionConfigResponse", "properties": { "consumption_config": { "$ref": "#/$defs/configv1ConsumptionConfig" } }, "type": "object", "$defs": { "ConsumptionConfigPartition": { "properties": { "filters": { "description": "Criteria that defines which data matches the `partition`. Filters are\nconcatenated together as implied `AND` operators. A request must match every\nfilter to match the `partition`. At most one `IN` filter and one `NOT_IN`\nfilter is allowed, since multiple filters of the same operator type are\nalways reducible to a single filter.", "items": { "$ref": "#/$defs/ConsumptionConfigPartitionFilter" }, "type": "array" }, "name": { "description": "Name of the partition. Must be unique within the parent partition. You can\nmodify this value after the partition is created.", "type": "string" }, "partitions": { "description": "Optional. Child partitions of this partition. If set, requests that match the\ncurrent partition are allocated to the first child partition that matches.\nRequests that don't match any child partition are assigned to an implicit `default`\nchild partition.", "items": { "$ref": "#/$defs/ConsumptionConfigPartition" }, "type": "array" }, "slug": { "description": "Immutable identifier of the partition. Must be unique within the parent\npartition. You can't modify this value after the partition is created.", "type": "string" } }, "required": [ "filters" ], "type": "object" }, "ConsumptionConfigPartitionFilter": { "properties": { "conditions": { "description": "Conditions for the query to match.", "items": { "$ref": "#/$defs/PartitionFilterCondition" }, "type": "array" }, "operator": { "allOf": [ { "$ref": "#/$defs/PartitionFilterOperator" } ], "description": "Specifies the match operator for the request:\n- `IN`: the request must match at least one of the conditions.\n- `NOT_IN`: the request must not match any of the conditions." } }, "required": [ "operator" ], "type": "object" }, "NumericFilterComparisonType": { "enum": [ "EQUAL", "NOT_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN", "LESS_THAN_OR_EQUAL" ], "type": "string" }, "PartitionFilterCondition": { "properties": { "dataset_slug": { "description": "Deprecated. Use `log_filter`, `metric_filters`, or `trace_span_filters` instead.", "type": "string" }, "log_filter": { "allOf": [ { "$ref": "#/$defs/configv1LogSearchFilter" } ], "description": "If set, matches incoming log data by log query.\n\nExactly one of `log_filter`, `metric_filters`, or `trace_span_filters` must be set." }, "metric_filters": { "description": "If set, matches incoming metric data by label. If multiple label\nfilters are specified, an incoming metric must match every label\nfilter to match the condition. Label values support glob patterns,\nincluding matching multiple patterns with an `OR`, such as\n`service:{svc1,svc2}`.\n\nExactly one of `log_filter`, `metric_filters`, or `trace_span_filters` must be set.", "items": { "$ref": "#/$defs/configv1LabelFilter" }, "type": "array" }, "trace_span_filters": { "description": "If set, matches incoming trace data at the span level: a span\nmatches the condition only if it satisfies every span filter.\nMatch alternatives with an `IN` string filter or with separate\nconditions.\n\nExactly one of `log_filter`, `metric_filters`, or `trace_span_filters` must be set.", "items": { "$ref": "#/$defs/configv1ConsumptionSpanFilter" }, "type": "array" } }, "type": "object" }, "PartitionFilterOperator": { "enum": [ "IN", "NOT_IN" ], "type": "string" }, "StringFilterStringFilterMatchType": { "enum": [ "EXACT", "REGEX", "EXACT_NEGATION", "REGEX_NEGATION", "IN", "NOT_IN" ], "type": "string" }, "TraceSearchFilterBoolFilter": { "properties": { "value": { "description": "The value of the filter compared to the target trace or span field.", "type": "boolean" } }, "type": "object" }, "TraceSearchFilterDurationFilter": { "properties": { "max_secs": { "description": "Maximum duration, in seconds, required for a span or trace to match.", "format": "double", "type": "number" }, "min_secs": { "description": "Minimum duration, in seconds, required for a span or trace to match.", "format": "double", "type": "number" } }, "type": "object" }, "TraceSearchFilterNumericFilter": { "properties": { "comparison": { "allOf": [ { "$ref": "#/$defs/NumericFilterComparisonType" } ], "description": "The comparison operation to apply to an input against the given query value." }, "value": { "description": "The filter value used in comparison against match candidates.", "format": "double", "type": "number" } }, "type": "object" }, "TraceSearchFilterStringFilter": { "properties": { "in_values": { "description": "Values the filter tests against when using `IN` or `NOT_IN` match type.", "items": { "type": "string" }, "type": "array" }, "match": { "allOf": [ { "$ref": "#/$defs/StringFilterStringFilterMatchType" } ], "description": "Specifies the comparison operator for the query. If `EXACT`, compared strings\nmust have the exact value of the query value." }, "value": { "description": "The value of the filter compared to the target trace or span field.", "type": "string" } }, "type": "object" }, "TraceSearchFilterTagFilter": { "properties": { "key": { "description": "The key or name of the span tag that this filter inspects.", "type": "string" }, "numeric_value": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterNumericFilter" } ], "description": "If the query matches the tag with the specified key, and the value type is\n`numeric`, specifies the matcher used to evaluate the span tag value." }, "value": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterStringFilter" } ], "description": "If the query matches the tag with the specified key, and the value type is a\n`string`, specifies the matcher used to evaluate the span tag value." } }, "type": "object" }, "configv1ConsumptionConfig": { "properties": { "created_at": { "description": "Timestamp of when the ConsumptionConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "partitions": { "description": "Partitions define non-overlapping groupings of telemetry data. Partitions are\ndefined in order of precedence, where incoming requests are allocated to the\nfirst partition that matches. Requests that don't match any partition use an\nimplicit `default` partition.", "items": { "$ref": "#/$defs/ConsumptionConfigPartition" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the ConsumptionConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1ConsumptionSpanFilter": { "properties": { "duration": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterDurationFilter" } ], "description": "Matches the duration of the candidate span. An omitted or zero bound\nis unbounded on that side." }, "error": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterBoolFilter" } ], "description": "Matches the error status of the candidate span." }, "is_root_span": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterBoolFilter" } ], "description": "Matches on whether the candidate span is the root span of its trace,\nwhich is the span with no parent span." }, "operation": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterStringFilter" } ], "description": "Matches the operation of the candidate span." }, "parent_operation": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterStringFilter" } ], "description": "Matches the operation of the candidate span's parent span. Spans without\na parent span, including root spans, don't match." }, "parent_service": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterStringFilter" } ], "description": "Matches the service of the candidate span's parent span. Spans without\na parent span, including root spans, don't match." }, "service": { "allOf": [ { "$ref": "#/$defs/TraceSearchFilterStringFilter" } ], "description": "Matches the service of the candidate span." }, "tags": { "description": "Matches the tags of the candidate span. A numeric matcher also\ncompares numeric-looking string tag values. To match alternatives,\nuse separate conditions.", "items": { "$ref": "#/$defs/TraceSearchFilterTagFilter" }, "type": "array" } }, "type": "object" }, "configv1LabelFilter": { "properties": { "name": { "description": "The name of the label to match.", "type": "string" }, "value_glob": { "description": "The glob value of the label to match.", "type": "string" } }, "type": "object" }, "configv1LogSearchFilter": { "properties": { "query": { "description": "Returns logs that match this query. The query can include only top-level\noperations. Nested clauses aren't supported. Only one type of `AND` or `OR`\noperator is allowed.", "type": "string" } }, "type": "object" } } }