kindsys: Adapt to new flattened lineage syntax in Thema (#68034)

* Update all core kinds to flattened lineages

* Regen Go types, without any

* Regen Go types, s/interface{}/any/

* Update generated core typescript

* Update generate docs

* Fix defaults gen in veneer index jenny

* Flatten plugindef lineage

* Convert all plugin kinds to flattened form

* Switch back to interface{} for now

* Switch to fs.Sub in plugin DeclParser

* Mostly undesirable codegen changes, to be fixed

* Update mod and sum

* Update pfs tests to flattened lineages

* Update thema to latest, regen docs
This commit is contained in:
sam boyer
2023-05-24 04:47:25 -04:00
committed by GitHub
parent 2ceed6a169
commit 323cbe1997
80 changed files with 3296 additions and 3205 deletions

View File

@@ -13,19 +13,17 @@ title: ElasticsearchDataQuery kind
It extends [DataQuery](#dataquery). | Property | Type | Required | Default | Description |
|--------------|-------------------------------------------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Property | Type | Required | Default | Description | | `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
|--------------|-------------------------------------------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `alias` | string | No | | Alias pattern |
| `refId` | string | **Yes** | | *(Inherited from [DataQuery](#dataquery))*<br/>A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. | | `bucketAggs` | [BucketAggregation](#bucketaggregation)[] | No | | List of bucket aggregations |
| `alias` | string | No | | Alias pattern | | `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `bucketAggs` | [BucketAggregation](#bucketaggregation)[] | No | | List of bucket aggregations | | `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `datasource` | | No | | *(Inherited from [DataQuery](#dataquery))*<br/>For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null | | `metrics` | [MetricAggregation](#metricaggregation)[] | No | | List of metric aggregations |
| `hide` | boolean | No | | *(Inherited from [DataQuery](#dataquery))*<br/>true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) | | `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
| `metrics` | [MetricAggregation](#metricaggregation)[] | No | | List of metric aggregations | | `query` | string | No | | Lucene query |
| `queryType` | string | No | | *(Inherited from [DataQuery](#dataquery))*<br/>Specify the query flavor<br/>TODO make this required and give it a default | | `timeField` | string | No | | Name of time field |
| `query` | string | No | | Lucene query |
| `timeField` | string | No | | Name of time field |
### BucketAggregation ### BucketAggregation
@@ -117,19 +115,6 @@ It extends [BucketAggregationWithField](#bucketaggregationwithfield).
| `id` | string | No | | *(Inherited from [BucketAggregationWithField](#bucketaggregationwithfield))* | | `id` | string | No | | *(Inherited from [BucketAggregationWithField](#bucketaggregationwithfield))* |
| `settings` | | No | | *(Inherited from [BucketAggregationWithField](#bucketaggregationwithfield))* | | `settings` | | No | | *(Inherited from [BucketAggregationWithField](#bucketaggregationwithfield))* |
### DataQuery
These are the common properties available to all queries in all datasources.
Specific implementations will *extend* this interface, adding the required
properties for the given context.
| Property | Type | Required | Default | Description |
|--------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
### MetricAggregation ### MetricAggregation
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |

View File

@@ -13,30 +13,15 @@ title: GrafanaPyroscopeDataQuery kind
It extends [DataQuery](#dataquery). | Property | Type | Required | Default | Description |
|-----------------|----------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Property | Type | Required | Default | Description | | `groupBy` | string[] | **Yes** | | Allows to group the results. |
|-----------------|----------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `labelSelector` | string | **Yes** | `{}` | Specifies the query label selectors. |
| `groupBy` | string[] | **Yes** | | Allows to group the results. | | `profileTypeId` | string | **Yes** | | Specifies the type of profile to query. |
| `labelSelector` | string | **Yes** | `{}` | Specifies the query label selectors. | | `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `profileTypeId` | string | **Yes** | | Specifies the type of profile to query. | | `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `refId` | string | **Yes** | | *(Inherited from [DataQuery](#dataquery))*<br/>A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. | | `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `datasource` | | No | | *(Inherited from [DataQuery](#dataquery))*<br/>For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null | | `maxNodes` | integer | No | | Sets the maximum number of nodes in the flamegraph. |
| `hide` | boolean | No | | *(Inherited from [DataQuery](#dataquery))*<br/>true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) | | `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
| `maxNodes` | integer | No | | Sets the maximum number of nodes in the flamegraph. |
| `queryType` | string | No | | *(Inherited from [DataQuery](#dataquery))*<br/>Specify the query flavor<br/>TODO make this required and give it a default |
### DataQuery
These are the common properties available to all queries in all datasources.
Specific implementations will *extend* this interface, adding the required
properties for the given context.
| Property | Type | Required | Default | Description |
|--------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |

View File

@@ -13,33 +13,18 @@ title: LokiDataQuery kind
It extends [DataQuery](#dataquery). | Property | Type | Required | Default | Description |
|----------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Property | Type | Required | Default | Description | | `expr` | string | **Yes** | | The LogQL query. |
|----------------|---------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `expr` | string | **Yes** | | The LogQL query. | | `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `refId` | string | **Yes** | | *(Inherited from [DataQuery](#dataquery))*<br/>A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. | | `editorMode` | string | No | | Possible values are: `code`, `builder`. |
| `datasource` | | No | | *(Inherited from [DataQuery](#dataquery))*<br/>For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null | | `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `editorMode` | string | No | | Possible values are: `code`, `builder`. | | `instant` | boolean | No | | @deprecated, now use queryType. |
| `hide` | boolean | No | | *(Inherited from [DataQuery](#dataquery))*<br/>true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) | | `legendFormat` | string | No | | Used to override the name of the series. |
| `instant` | boolean | No | | @deprecated, now use queryType. | | `maxLines` | integer | No | | Used to limit the number of log rows returned. |
| `legendFormat` | string | No | | Used to override the name of the series. | | `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
| `maxLines` | integer | No | | Used to limit the number of log rows returned. | | `range` | boolean | No | | @deprecated, now use queryType. |
| `queryType` | string | No | | *(Inherited from [DataQuery](#dataquery))*<br/>Specify the query flavor<br/>TODO make this required and give it a default | | `resolution` | integer | No | | Used to scale the interval value. |
| `range` | boolean | No | | @deprecated, now use queryType. |
| `resolution` | integer | No | | Used to scale the interval value. |
### DataQuery
These are the common properties available to all queries in all datasources.
Specific implementations will *extend* this interface, adding the required
properties for the given context.
| Property | Type | Required | Default | Description |
|--------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |

View File

@@ -13,28 +13,13 @@ title: ParcaDataQuery kind
It extends [DataQuery](#dataquery). | Property | Type | Required | Default | Description |
|-----------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Property | Type | Required | Default | Description | | `labelSelector` | string | **Yes** | `{}` | Specifies the query label selectors. |
|-----------------|---------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `profileTypeId` | string | **Yes** | | Specifies the type of profile to query. |
| `labelSelector` | string | **Yes** | `{}` | Specifies the query label selectors. | | `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `profileTypeId` | string | **Yes** | | Specifies the type of profile to query. | | `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `refId` | string | **Yes** | | *(Inherited from [DataQuery](#dataquery))*<br/>A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. | | `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `datasource` | | No | | *(Inherited from [DataQuery](#dataquery))*<br/>For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null | | `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
| `hide` | boolean | No | | *(Inherited from [DataQuery](#dataquery))*<br/>true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | *(Inherited from [DataQuery](#dataquery))*<br/>Specify the query flavor<br/>TODO make this required and give it a default |
### DataQuery
These are the common properties available to all queries in all datasources.
Specific implementations will *extend* this interface, adding the required
properties for the given context.
| Property | Type | Required | Default | Description |
|--------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |

View File

@@ -13,34 +13,19 @@ title: PrometheusDataQuery kind
It extends [DataQuery](#dataquery). | Property | Type | Required | Default | Description |
|------------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Property | Type | Required | Default | Description | | `expr` | string | **Yes** | | The actual expression/query that will be evaluated by Prometheus |
|------------------|---------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `expr` | string | **Yes** | | The actual expression/query that will be evaluated by Prometheus | | `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `refId` | string | **Yes** | | *(Inherited from [DataQuery](#dataquery))*<br/>A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. | | `editorMode` | string | No | | Possible values are: `code`, `builder`. |
| `datasource` | | No | | *(Inherited from [DataQuery](#dataquery))*<br/>For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null | | `exemplar` | boolean | No | | Execute an additional query to identify interesting raw samples relevant for the given expr |
| `editorMode` | string | No | | Possible values are: `code`, `builder`. | | `format` | string | No | | Possible values are: `time_series`, `table`, `heatmap`. |
| `exemplar` | boolean | No | | Execute an additional query to identify interesting raw samples relevant for the given expr | | `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `format` | string | No | | Possible values are: `time_series`, `table`, `heatmap`. | | `instant` | boolean | No | | Returns only the latest value that Prometheus has scraped for the requested time series |
| `hide` | boolean | No | | *(Inherited from [DataQuery](#dataquery))*<br/>true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) | | `intervalFactor` | number | No | | @deprecated Used to specify how many times to divide max data points by. We use max data points under query options<br/>See https://github.com/grafana/grafana/issues/48081 |
| `instant` | boolean | No | | Returns only the latest value that Prometheus has scraped for the requested time series | | `legendFormat` | string | No | | Series name override or template. Ex. {{hostname}} will be replaced with label value for hostname |
| `intervalFactor` | number | No | | @deprecated Used to specify how many times to divide max data points by. We use max data points under query options<br/>See https://github.com/grafana/grafana/issues/48081 | | `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
| `legendFormat` | string | No | | Series name override or template. Ex. {{hostname}} will be replaced with label value for hostname | | `range` | boolean | No | | Returns a Range vector, comprised of a set of time series containing a range of data points over time for each time series |
| `queryType` | string | No | | *(Inherited from [DataQuery](#dataquery))*<br/>Specify the query flavor<br/>TODO make this required and give it a default |
| `range` | boolean | No | | Returns a Range vector, comprised of a set of time series containing a range of data points over time for each time series |
### DataQuery
These are the common properties available to all queries in all datasources.
Specific implementations will *extend* this interface, adding the required
properties for the given context.
| Property | Type | Required | Default | Description |
|--------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |

View File

@@ -13,26 +13,24 @@ title: TestDataDataQuery kind
It extends [DataQuery](#dataquery).
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|-------------------|-------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |-------------------|-------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | *(Inherited from [DataQuery](#dataquery))*<br/>A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. | | `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `alias` | string | No | | | | `alias` | string | No | | |
| `channel` | string | No | | | | `channel` | string | No | | |
| `csvContent` | string | No | | | | `csvContent` | string | No | | |
| `csvFileName` | string | No | | | | `csvFileName` | string | No | | |
| `csvWave` | [CSVWave](#csvwave)[] | No | | | | `csvWave` | [CSVWave](#csvwave)[] | No | | |
| `datasource` | | No | | *(Inherited from [DataQuery](#dataquery))*<br/>For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null | | `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `errorType` | string | No | | Possible values are: `server_panic`, `frontend_exception`, `frontend_observable`. | | `errorType` | string | No | | Possible values are: `server_panic`, `frontend_exception`, `frontend_observable`. |
| `hide` | boolean | No | | *(Inherited from [DataQuery](#dataquery))*<br/>true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) | | `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `labels` | string | No | | | | `labels` | string | No | | |
| `levelColumn` | boolean | No | | | | `levelColumn` | boolean | No | | |
| `lines` | integer | No | | | | `lines` | integer | No | | |
| `nodes` | [NodesQuery](#nodesquery) | No | | | | `nodes` | [NodesQuery](#nodesquery) | No | | |
| `points` | array[] | No | | | | `points` | array[] | No | | |
| `pulseWave` | [PulseWaveQuery](#pulsewavequery) | No | | | | `pulseWave` | [PulseWaveQuery](#pulsewavequery) | No | | |
| `queryType` | string | No | | *(Inherited from [DataQuery](#dataquery))*<br/>Specify the query flavor<br/>TODO make this required and give it a default | | `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
| `rawFrameContent` | string | No | | | | `rawFrameContent` | string | No | | |
| `scenarioId` | string | No | | Possible values are: `random_walk`, `slow_query`, `random_walk_with_error`, `random_walk_table`, `exponential_heatmap_bucket_data`, `linear_heatmap_bucket_data`, `no_data_points`, `datapoints_outside_range`, `csv_metric_values`, `predictable_pulse`, `predictable_csv_wave`, `streaming_client`, `simulation`, `usa`, `live`, `grafana_api`, `arrow`, `annotations`, `table_static`, `server_error_500`, `logs`, `node_graph`, `flame_graph`, `raw_frame`, `csv_file`, `csv_content`, `trace`, `manual_entry`, `variables-query`. | | `scenarioId` | string | No | | Possible values are: `random_walk`, `slow_query`, `random_walk_with_error`, `random_walk_table`, `exponential_heatmap_bucket_data`, `linear_heatmap_bucket_data`, `no_data_points`, `datapoints_outside_range`, `csv_metric_values`, `predictable_pulse`, `predictable_csv_wave`, `streaming_client`, `simulation`, `usa`, `live`, `grafana_api`, `arrow`, `annotations`, `table_static`, `server_error_500`, `logs`, `node_graph`, `flame_graph`, `raw_frame`, `csv_file`, `csv_content`, `trace`, `manual_entry`, `variables-query`. |
| `seriesCount` | integer | No | | | | `seriesCount` | integer | No | | |
@@ -51,19 +49,6 @@ It extends [DataQuery](#dataquery).
| `timeStep` | integer | No | | | | `timeStep` | integer | No | | |
| `valuesCSV` | string | No | | | | `valuesCSV` | string | No | | |
### DataQuery
These are the common properties available to all queries in all datasources.
Specific implementations will *extend* this interface, adding the required
properties for the given context.
| Property | Type | Required | Default | Description |
|--------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `refId` | string | **Yes** | | A unique identifier for the query within the list of targets.<br/>In server side expressions, the refId is used as a variable name to identify results.<br/>By default, the UI will assign A->Z; however setting meaningful names may be useful. |
| `datasource` | | No | | For mixed data sources the selected datasource is on the query level.<br/>For non mixed scenarios this is undefined.<br/>TODO find a better way to do this ^ that's friendly to schema<br/>TODO this shouldn't be unknown but DataSourceRef &#124; null |
| `hide` | boolean | No | | true if query is disabled (ie should not be returned to the dashboard)<br/>Note this does not always imply that the query should not be executed since<br/>the results from a hidden query may be used as the input to other queries (SSE etc) |
| `queryType` | string | No | | Specify the query flavor<br/>TODO make this required and give it a default |
### NodesQuery ### NodesQuery
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |

View File

@@ -661,10 +661,10 @@ TODO this appears to be spread all over in the frontend. Concepts will likely ne
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -673,7 +673,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -16,7 +16,7 @@ A folder is a collection of resources that are grouped together and can share pe
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|------------|---------------------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |------------|---------------------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `metadata` | [object](#metadata) | **Yes** | | metadata contains embedded CommonMetadata and can be extended with custom string fields<br/>TODO: use CommonMetadata instead of redefining here; currently needs to be defined here<br/>without external reference as using the CommonMetadata reference breaks thema codegen. | | `metadata` | [object](#metadata) | **Yes** | | metadata contains embedded CommonMetadata and can be extended with custom string fields<br/>TODO: use CommonMetadata instead of redefining here; currently needs to be defined here<br/>without external reference as using the CommonMetadata reference breaks thema codegen. |
| `spec` | [object](#spec) | **Yes** | | | | `spec` | [object](#spec) | **Yes** | | TODO:<br/>common metadata will soon support setting the parent folder in the metadata |
| `status` | [object](#status) | **Yes** | | | | `status` | [object](#status) | **Yes** | | |
### Metadata ### Metadata
@@ -64,6 +64,9 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Spec ### Spec
TODO:
common metadata will soon support setting the parent folder in the metadata
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|---------------|--------|----------|---------|--------------------------------------| |---------------|--------|----------|---------|--------------------------------------|
| `title` | string | **Yes** | | Folder title | | `title` | string | **Yes** | | Folder title |
@@ -72,10 +75,10 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -84,7 +87,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -106,10 +106,10 @@ Typescript: Omit<Panel, 'gridPos' | 'id' | 'libraryPanel'>;
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -118,7 +118,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -81,10 +81,10 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -93,7 +93,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -81,10 +81,10 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -93,7 +93,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -75,10 +75,10 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -87,7 +87,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -79,10 +79,10 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -91,7 +91,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@@ -71,10 +71,10 @@ extraFields is reserved for any fields that are pulled from the API server metad
### Status ### Status
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|----------------------------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|------------------------------------------------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use | | `additionalFields` | [object](#additionalfields) | No | | additionalFields is reserved for future use |
| `operatorStates` | map[string][joinSchema.status.#OperatorState](#joinschema.status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. | | `operatorStates` | map[string][status.#OperatorState](#status.#operatorstate) | No | | operatorStates is a map of operator ID to operator state evaluations.<br/>Any operator which consumes this kind SHOULD add its state evaluation information to this field. |
### AdditionalFields ### AdditionalFields
@@ -83,7 +83,7 @@ additionalFields is reserved for future use
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|----------|------|----------|---------|-------------| |----------|------|----------|---------|-------------|
### JoinSchema.Status.#OperatorState ### Status.#OperatorState
| Property | Type | Required | Default | Description | | Property | Type | Required | Default | Description |
|--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------|--------------------|----------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

11
go.mod
View File

@@ -264,8 +264,8 @@ require (
github.com/grafana/dataplane/examples v0.0.0-20230404174214-4d6fd58a18ad github.com/grafana/dataplane/examples v0.0.0-20230404174214-4d6fd58a18ad
github.com/grafana/dataplane/sdata v0.0.6 github.com/grafana/dataplane/sdata v0.0.6
github.com/grafana/go-mssqldb v0.9.1 github.com/grafana/go-mssqldb v0.9.1
github.com/grafana/kindsys v0.0.0-20230508175818-7ad73516220b github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482
github.com/grafana/thema v0.0.0-20230417103609-99b482c479fe github.com/grafana/thema v0.0.0-20230523123227-db9596a7096e
github.com/redis/go-redis/v9 v9.0.2 github.com/redis/go-redis/v9 v9.0.2
github.com/weaveworks/common v0.0.0-20230208133027-16871410fca4 github.com/weaveworks/common v0.0.0-20230208133027-16871410fca4
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
@@ -285,6 +285,9 @@ require (
github.com/bmatcuk/doublestar v1.1.1 // indirect github.com/bmatcuk/doublestar v1.1.1 // indirect
github.com/buildkite/yaml v2.1.0+incompatible // indirect github.com/buildkite/yaml v2.1.0+incompatible // indirect
github.com/cloudflare/circl v1.1.0 // indirect github.com/cloudflare/circl v1.1.0 // indirect
github.com/cockroachdb/errors v1.9.1 // indirect
github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f // indirect
github.com/cockroachdb/redact v1.1.3 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect
@@ -294,6 +297,7 @@ require (
github.com/drone/drone-go v1.7.1 // indirect github.com/drone/drone-go v1.7.1 // indirect
github.com/drone/envsubst v1.0.3 // indirect github.com/drone/envsubst v1.0.3 // indirect
github.com/drone/runner-go v1.12.0 // indirect github.com/drone/runner-go v1.12.0 // indirect
github.com/getsentry/sentry-go v0.12.0 // indirect
github.com/go-asn1-ber/asn1-ber v1.5.4 // indirect github.com/go-asn1-ber/asn1-ber v1.5.4 // indirect
github.com/google/go-querystring v1.1.0 // indirect github.com/google/go-querystring v1.1.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
@@ -303,6 +307,7 @@ require (
github.com/hashicorp/golang-lru/v2 v2.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.2 // indirect
github.com/hashicorp/memberlist v0.5.0 // indirect github.com/hashicorp/memberlist v0.5.0 // indirect
github.com/invopop/yaml v0.1.0 // indirect github.com/invopop/yaml v0.1.0 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect github.com/kr/text v0.2.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-ieproxy v0.0.3 // indirect github.com/mattn/go-ieproxy v0.0.3 // indirect
@@ -314,6 +319,7 @@ require (
github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect
github.com/perimeterx/marshmallow v1.1.4 // indirect github.com/perimeterx/marshmallow v1.1.4 // indirect
github.com/rivo/uniseg v0.3.4 // indirect github.com/rivo/uniseg v0.3.4 // indirect
github.com/rogpeppe/go-internal v1.9.0 // indirect
github.com/rueian/rueidis v0.0.100-go1.18 // indirect github.com/rueian/rueidis v0.0.100-go1.18 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/segmentio/asm v1.2.0 // indirect github.com/segmentio/asm v1.2.0 // indirect
@@ -380,7 +386,6 @@ require (
github.com/wk8/go-ordered-map v1.0.0 github.com/wk8/go-ordered-map v1.0.0
github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect
github.com/xlab/treeprint v1.1.0 github.com/xlab/treeprint v1.1.0
github.com/yudai/pp v2.0.1+incompatible // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect
go.opentelemetry.io/proto/otlp v0.19.0 // indirect go.opentelemetry.io/proto/otlp v0.19.0 // indirect
golang.org/x/mod v0.9.0 // indirect golang.org/x/mod v0.9.0 // indirect

89
go.sum
View File

@@ -111,6 +111,7 @@ filippo.io/age v1.1.1/go.mod h1:l03SrzDUrBkdBx8+IILdnn2KZysqQdbEBUQ4p3sqEQE=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
github.com/99designs/basicauth-go v0.0.0-20160802081356-2a93ba0f464d/go.mod h1:3cARGAK9CfW3HoxCy1a0G4TKrdiKke8ftOMEOHyySYs= github.com/99designs/basicauth-go v0.0.0-20160802081356-2a93ba0f464d/go.mod h1:3cARGAK9CfW3HoxCy1a0G4TKrdiKke8ftOMEOHyySYs=
github.com/99designs/httpsignatures-go v0.0.0-20170731043157-88528bf4ca7e/go.mod h1:Xa6lInWHNQnuWoF0YPSsx+INFA9qk7/7pTjwb3PInkY= github.com/99designs/httpsignatures-go v0.0.0-20170731043157-88528bf4ca7e/go.mod h1:Xa6lInWHNQnuWoF0YPSsx+INFA9qk7/7pTjwb3PInkY=
github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8=
github.com/Azure/azure-amqp-common-go/v3 v3.2.1/go.mod h1:O6X1iYHP7s2x7NjUKsXVhkwWrQhxrd+d8/3rRadj4CI= github.com/Azure/azure-amqp-common-go/v3 v3.2.1/go.mod h1:O6X1iYHP7s2x7NjUKsXVhkwWrQhxrd+d8/3rRadj4CI=
github.com/Azure/azure-amqp-common-go/v3 v3.2.2/go.mod h1:O6X1iYHP7s2x7NjUKsXVhkwWrQhxrd+d8/3rRadj4CI= github.com/Azure/azure-amqp-common-go/v3 v3.2.2/go.mod h1:O6X1iYHP7s2x7NjUKsXVhkwWrQhxrd+d8/3rRadj4CI=
github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U=
@@ -177,6 +178,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno=
github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo=
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
@@ -187,6 +190,7 @@ github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qE
github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
@@ -204,7 +208,6 @@ github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2B
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ=
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756 h1:L6S7kR7SlhQKplIBpkra3s6yhcZV51lhRnXmYc4HohI= github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756 h1:L6S7kR7SlhQKplIBpkra3s6yhcZV51lhRnXmYc4HohI=
github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE= github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE=
@@ -217,6 +220,7 @@ github.com/RoaringBitmap/real-roaring-datasets v0.0.0-20190726190000-eb7c87156f7
github.com/RoaringBitmap/roaring v0.9.1/go.mod h1:h1B7iIUOmnAeb5ytYMvnHJwxMc6LUrwBnzXWRuqTQUc= github.com/RoaringBitmap/roaring v0.9.1/go.mod h1:h1B7iIUOmnAeb5ytYMvnHJwxMc6LUrwBnzXWRuqTQUc=
github.com/RoaringBitmap/roaring v0.9.4 h1:ckvZSX5gwCRaJYBNe7syNawCU5oruY9gQmjXlp4riwo= github.com/RoaringBitmap/roaring v0.9.4 h1:ckvZSX5gwCRaJYBNe7syNawCU5oruY9gQmjXlp4riwo=
github.com/RoaringBitmap/roaring v0.9.4/go.mod h1:icnadbWcNyfEHlYdr+tDlOTih1Bf/h+rzPpv4sbomAA= github.com/RoaringBitmap/roaring v0.9.4/go.mod h1:icnadbWcNyfEHlYdr+tDlOTih1Bf/h+rzPpv4sbomAA=
github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/sarama v1.29.1/go.mod h1:mdtqvCSg8JOxk8PmpTNGyo6wzd4BMm4QXSfDnTXmgkE= github.com/Shopify/sarama v1.29.1/go.mod h1:mdtqvCSg8JOxk8PmpTNGyo6wzd4BMm4QXSfDnTXmgkE=
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
@@ -228,6 +232,7 @@ github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk
github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4=
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE=
github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE=
@@ -339,6 +344,7 @@ github.com/aws/smithy-go v1.11.2 h1:eG/N+CcUMAvsdffgMvjMKwfyDzIkjM6pfxMJ8Mzc6mE=
github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM=
github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f h1:y06x6vGnFYfXUoVMbrcP1Uzpj4JG01eB5vRps9G8agM= github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f h1:y06x6vGnFYfXUoVMbrcP1Uzpj4JG01eB5vRps9G8agM=
github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f/go.mod h1:2stgcRjl6QmW+gU2h5E7BQXg4HU0gzxKWDuT5HviN9s= github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f/go.mod h1:2stgcRjl6QmW+gU2h5E7BQXg4HU0gzxKWDuT5HviN9s=
github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g=
github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs=
github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -438,7 +444,15 @@ github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b80
github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw=
github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8=
github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk=
github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f h1:6jduT9Hfc0njg5jJ1DdKCFPdMBrp/mdZfCpa5h+WM74=
github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ=
github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=
github.com/containerd/containerd v1.2.7/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.2.7/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
github.com/containerd/containerd v1.3.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
@@ -494,6 +508,7 @@ github.com/deepmap/oapi-codegen v1.12.4/go.mod h1:3lgHGMu6myQ2vqbbTXH2H1o4eXFTGn
github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE=
github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA=
github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY=
github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4=
github.com/dgraph-io/badger/v3 v3.2103.0/go.mod h1:GHMCYxuDWyzbHkh4k3yyg4PM61tJPFfEGSMbE3Vd5QE= github.com/dgraph-io/badger/v3 v3.2103.0/go.mod h1:GHMCYxuDWyzbHkh4k3yyg4PM61tJPFfEGSMbE3Vd5QE=
github.com/dgraph-io/ristretto v0.0.4-0.20210309073149-3836124cdc5a/go.mod h1:MIonLggsKgZLUSt414ExgwNtlOL5MuEoAJP514mwGe8= github.com/dgraph-io/ristretto v0.0.4-0.20210309073149-3836124cdc5a/go.mod h1:MIonLggsKgZLUSt414ExgwNtlOL5MuEoAJP514mwGe8=
github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug=
@@ -549,6 +564,7 @@ github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac h1:XDAn206aIqKPdF5YczuuJXSQPx+WOen0Pxbxp5Fq8Pg= github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac h1:XDAn206aIqKPdF5YczuuJXSQPx+WOen0Pxbxp5Fq8Pg=
github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy v0.0.0-20220115173737-adb46da277ac/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
@@ -567,7 +583,9 @@ github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCw
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY=
github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w=
github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw=
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
@@ -600,6 +618,7 @@ github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmV
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7RHGAyAK3EP2EsNk= github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7RHGAyAK3EP2EsNk=
github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc=
github.com/gchaincl/sqlhooks v1.3.0 h1:yKPXxW9a5CjXaVf2HkQn6wn7TZARvbAOAelr3H8vK2Y= github.com/gchaincl/sqlhooks v1.3.0 h1:yKPXxW9a5CjXaVf2HkQn6wn7TZARvbAOAelr3H8vK2Y=
github.com/gchaincl/sqlhooks v1.3.0/go.mod h1:9BypXnereMT0+Ys8WGWHqzgkkOfHIhyeUCqXC24ra34= github.com/gchaincl/sqlhooks v1.3.0/go.mod h1:9BypXnereMT0+Ys8WGWHqzgkkOfHIhyeUCqXC24ra34=
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
@@ -608,10 +627,14 @@ github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW
github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
github.com/getkin/kin-openapi v0.115.0 h1:c8WHRLVY3G8m9jQTy0/DnIuljgRwTCB5twZytQS4JyU= github.com/getkin/kin-openapi v0.115.0 h1:c8WHRLVY3G8m9jQTy0/DnIuljgRwTCB5twZytQS4JyU=
github.com/getkin/kin-openapi v0.115.0/go.mod h1:l5e9PaFUo9fyLJCPGQeXI2ML8c3P8BHOEV2VaAVf/pc= github.com/getkin/kin-openapi v0.115.0/go.mod h1:l5e9PaFUo9fyLJCPGQeXI2ML8c3P8BHOEV2VaAVf/pc=
github.com/getsentry/sentry-go v0.12.0 h1:era7g0re5iY13bHSdN/xMkyV+5zZppjRVQhZrXCaEIk=
github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew=
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I=
github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
github.com/gin-gonic/gin v1.7.3/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/gin-gonic/gin v1.7.3/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
@@ -621,7 +644,10 @@ github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
github.com/go-asn1-ber/asn1-ber v1.5.4 h1:vXT6d/FNDiELJnLb6hGNa309LMsrCoYFvpwHDF0+Y1A= github.com/go-asn1-ber/asn1-ber v1.5.4 h1:vXT6d/FNDiELJnLb6hGNa309LMsrCoYFvpwHDF0+Y1A=
github.com/go-asn1-ber/asn1-ber v1.5.4/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-asn1-ber/asn1-ber v1.5.4/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
@@ -668,6 +694,7 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8=
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -855,6 +882,7 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4=
github.com/gogo/protobuf v0.0.0-20170307180453-100ba4e88506/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v0.0.0-20170307180453-100ba4e88506/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -865,6 +893,8 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/gogo/status v1.0.3/go.mod h1:SavQ51ycCLnc7dGyJxp8YAmudx8xqiVrRf+6IXRsugc= github.com/gogo/status v1.0.3/go.mod h1:SavQ51ycCLnc7dGyJxp8YAmudx8xqiVrRf+6IXRsugc=
github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM=
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
@@ -922,6 +952,7 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219 h1:utua3L2IbQJmauC5IXdEA547bcoU5dozgQAfc8Onsg4= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219 h1:utua3L2IbQJmauC5IXdEA547bcoU5dozgQAfc8Onsg4=
github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y=
github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
@@ -1065,18 +1096,10 @@ github.com/grafana/grafana-google-sdk-go v0.1.0 h1:LKGY8z2DSxKjYfr2flZsWgTRTZ6HG
github.com/grafana/grafana-google-sdk-go v0.1.0/go.mod h1:Vo2TKWfDVmNTELBUM+3lkrZvFtBws0qSZdXhQxRdJrE= github.com/grafana/grafana-google-sdk-go v0.1.0/go.mod h1:Vo2TKWfDVmNTELBUM+3lkrZvFtBws0qSZdXhQxRdJrE=
github.com/grafana/grafana-plugin-sdk-go v0.94.0/go.mod h1:3VXz4nCv6wH5SfgB3mlW39s+c+LetqSCjFj7xxPC5+M= github.com/grafana/grafana-plugin-sdk-go v0.94.0/go.mod h1:3VXz4nCv6wH5SfgB3mlW39s+c+LetqSCjFj7xxPC5+M=
github.com/grafana/grafana-plugin-sdk-go v0.114.0/go.mod h1:D7x3ah+1d4phNXpbnOaxa/osSaZlwh9/ZUnGGzegRbk= github.com/grafana/grafana-plugin-sdk-go v0.114.0/go.mod h1:D7x3ah+1d4phNXpbnOaxa/osSaZlwh9/ZUnGGzegRbk=
github.com/grafana/grafana-plugin-sdk-go v0.160.0 h1:jELbsqee5kRz9vD1hZeP8+984xMZDU/M6uGv0RhOR34=
github.com/grafana/grafana-plugin-sdk-go v0.160.0/go.mod h1:dPhljkVno3Bg/ZYafMrR/BfYjtCRJD2hU2719Nl3QzM=
github.com/grafana/grafana-plugin-sdk-go v0.162.0 h1:ij2ARWohf0IoK9yCVC1Wup4Gp6zwBq2AueVXRYsv/to= github.com/grafana/grafana-plugin-sdk-go v0.162.0 h1:ij2ARWohf0IoK9yCVC1Wup4Gp6zwBq2AueVXRYsv/to=
github.com/grafana/grafana-plugin-sdk-go v0.162.0/go.mod h1:dPhljkVno3Bg/ZYafMrR/BfYjtCRJD2hU2719Nl3QzM= github.com/grafana/grafana-plugin-sdk-go v0.162.0/go.mod h1:dPhljkVno3Bg/ZYafMrR/BfYjtCRJD2hU2719Nl3QzM=
github.com/grafana/kindsys v0.0.0-20230323180930-c2a9ced5c751 h1:X5jwaMcpUMQ+xv7fKhs9U+oBxfo2x+x8GpHWybDSgk0= github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482 h1:1YNoeIhii4UIIQpCPU+EXidnqf449d0C3ZntAEt4KSo=
github.com/grafana/kindsys v0.0.0-20230323180930-c2a9ced5c751/go.mod h1:213a3clTiegHfheYcLPLeEyHv/azK/fAF67OEbzuLzw= github.com/grafana/kindsys v0.0.0-20230508162304-452481b63482/go.mod h1:GNcfpy5+SY6RVbNGQW264gC0r336Dm+0zgQ5vt6+M8Y=
github.com/grafana/kindsys v0.0.0-20230427152021-bb328815be7a h1:i2YhC6eTyDp+7Ftv5c6VZDUQskmKX4oIPGf38qfiZiU=
github.com/grafana/kindsys v0.0.0-20230427152021-bb328815be7a/go.mod h1:GNcfpy5+SY6RVbNGQW264gC0r336Dm+0zgQ5vt6+M8Y=
github.com/grafana/kindsys v0.0.0-20230508172648-19fc432f045a h1:L8Qph5iUyVnLGinQzPmtJYUtPDG4TyT6vGDFT9EdCTU=
github.com/grafana/kindsys v0.0.0-20230508172648-19fc432f045a/go.mod h1:GNcfpy5+SY6RVbNGQW264gC0r336Dm+0zgQ5vt6+M8Y=
github.com/grafana/kindsys v0.0.0-20230508175818-7ad73516220b h1:x3gw5zsWZ2vxQ0GYucB2PFQ6eISAoWkba5MrQd8ZK0E=
github.com/grafana/kindsys v0.0.0-20230508175818-7ad73516220b/go.mod h1:GNcfpy5+SY6RVbNGQW264gC0r336Dm+0zgQ5vt6+M8Y=
github.com/grafana/phlare/api v0.1.4-0.20230426005640-f90edba05413 h1:bBzCezZNRyYlJpXTkyZdY4fpPxHZUdyeyRWzhtw/P6I= github.com/grafana/phlare/api v0.1.4-0.20230426005640-f90edba05413 h1:bBzCezZNRyYlJpXTkyZdY4fpPxHZUdyeyRWzhtw/P6I=
github.com/grafana/phlare/api v0.1.4-0.20230426005640-f90edba05413/go.mod h1:IvwuGG9xa/h96UH/exgvsfy3zE+ZpctkNT9o5aaGdrU= github.com/grafana/phlare/api v0.1.4-0.20230426005640-f90edba05413/go.mod h1:IvwuGG9xa/h96UH/exgvsfy3zE+ZpctkNT9o5aaGdrU=
github.com/grafana/prometheus-alertmanager v0.25.1-0.20230508090422-7d5630522a53 h1:X3Jl4PBIGCtlPSMa6Uiu2+3FDNWmddSjivp+1DDznQs= github.com/grafana/prometheus-alertmanager v0.25.1-0.20230508090422-7d5630522a53 h1:X3Jl4PBIGCtlPSMa6Uiu2+3FDNWmddSjivp+1DDznQs=
@@ -1087,8 +1110,8 @@ github.com/grafana/saml v0.4.13-0.20230331080031-67cbfa09c7b6 h1:oHn/OOUkECNX06D
github.com/grafana/saml v0.4.13-0.20230331080031-67cbfa09c7b6/go.mod h1:igEejV+fihTIlHXYP8zOec3V5A8y3lws5bQBFsTm4gA= github.com/grafana/saml v0.4.13-0.20230331080031-67cbfa09c7b6/go.mod h1:igEejV+fihTIlHXYP8zOec3V5A8y3lws5bQBFsTm4gA=
github.com/grafana/sqlds/v2 v2.3.10 h1:HWKhE0vR6LoEiE+Is8CSZOgaB//D1yqb2ntkass9Fd4= github.com/grafana/sqlds/v2 v2.3.10 h1:HWKhE0vR6LoEiE+Is8CSZOgaB//D1yqb2ntkass9Fd4=
github.com/grafana/sqlds/v2 v2.3.10/go.mod h1:c6ibxnxRVGxV/0YkEgvy7QpQH/lyifFyV7K/14xvdIs= github.com/grafana/sqlds/v2 v2.3.10/go.mod h1:c6ibxnxRVGxV/0YkEgvy7QpQH/lyifFyV7K/14xvdIs=
github.com/grafana/thema v0.0.0-20230417103609-99b482c479fe h1:Ws23A0XH6XYNaF/XhrOhNiC09rqGisvflCf0aHRhpTM= github.com/grafana/thema v0.0.0-20230523123227-db9596a7096e h1:pg6l/d7m7tsmlMQ6JCRI8AHFuqT41I7MWVPj8IADXzE=
github.com/grafana/thema v0.0.0-20230417103609-99b482c479fe/go.mod h1:hjlPua8wL3HO188Qg6GhTeYOPaUOneC04sFYRtcxSNw= github.com/grafana/thema v0.0.0-20230523123227-db9596a7096e/go.mod h1:Pn9nfzCk7nV0mvNgwusgCjCROZP6nm4GpwTnmEhLT24=
github.com/grafana/xorm v0.8.3-0.20220614223926-2fcda7565af6 h1:I9dh1MXGX0wGyxdV/Sl7+ugnki4Dfsy8lv2s5Yf887o= github.com/grafana/xorm v0.8.3-0.20220614223926-2fcda7565af6 h1:I9dh1MXGX0wGyxdV/Sl7+ugnki4Dfsy8lv2s5Yf887o=
github.com/grafana/xorm v0.8.3-0.20220614223926-2fcda7565af6/go.mod h1:ZkJLEYLoVyg7amJK/5r779bHyzs2AU8f8VMiP6BM7uY= github.com/grafana/xorm v0.8.3-0.20220614223926-2fcda7565af6/go.mod h1:ZkJLEYLoVyg7amJK/5r779bHyzs2AU8f8VMiP6BM7uY=
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
@@ -1213,6 +1236,7 @@ github.com/huandu/xstrings v1.3.1 h1:4jgBlKK6tLKFvO8u5pmYjG91cqytmDCDvGh7ECVFfFs
github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo=
github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE=
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -1224,6 +1248,7 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
github.com/influxdata/influxdb-client-go/v2 v2.6.0 h1:bIOaGTgvvv1Na2hG+nIvqyv7PK2UiU2WrJN1ck1ykyM= github.com/influxdata/influxdb-client-go/v2 v2.6.0 h1:bIOaGTgvvv1Na2hG+nIvqyv7PK2UiU2WrJN1ck1ykyM=
@@ -1237,6 +1262,11 @@ github.com/invopop/yaml v0.1.0 h1:YW3WGUoJEXYfzWBjn00zIlrw7brGVD0fUKRYDPAPhrc=
github.com/invopop/yaml v0.1.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q= github.com/invopop/yaml v0.1.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q=
github.com/ionos-cloud/sdk-go/v6 v6.1.4 h1:BJHhFA8Q1SZC7VOXqKKr2BV2ysQ2/4hlk1e4hZte7GY= github.com/ionos-cloud/sdk-go/v6 v6.1.4 h1:BJHhFA8Q1SZC7VOXqKKr2BV2ysQ2/4hlk1e4hZte7GY=
github.com/ionos-cloud/sdk-go/v6 v6.1.4/go.mod h1:Ox3W0iiEz0GHnfY9e5LmAxwklsxguuNFEUSu0gVRTME= github.com/ionos-cloud/sdk-go/v6 v6.1.4/go.mod h1:Ox3W0iiEz0GHnfY9e5LmAxwklsxguuNFEUSu0gVRTME=
github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI=
github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0=
github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk=
github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g=
github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw=
github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo=
github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
@@ -1327,9 +1357,15 @@ github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/jung-kurt/gofpdf v1.16.2 h1:jgbatWHfRlPYiK85qgevsZTHviWXKwB1TTiKdz5PtRc= github.com/jung-kurt/gofpdf v1.16.2 h1:jgbatWHfRlPYiK85qgevsZTHviWXKwB1TTiKdz5PtRc=
github.com/jung-kurt/gofpdf v1.16.2/go.mod h1:1hl7y57EsiPAkLbOwzpzqgx1A30nQCk/YmFV8S2vmK0= github.com/jung-kurt/gofpdf v1.16.2/go.mod h1:1hl7y57EsiPAkLbOwzpzqgx1A30nQCk/YmFV8S2vmK0=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8=
github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE=
github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE=
github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro=
github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8=
github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck=
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
@@ -1337,7 +1373,9 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.11.12/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.12/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
@@ -1347,6 +1385,7 @@ github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e
github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0=
github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/knadh/koanf v1.2.0/go.mod h1:xpPTwMhsA/aaQLAilyCCqfpEiY1gpa160AiCuWHJUjY= github.com/knadh/koanf v1.2.0/go.mod h1:xpPTwMhsA/aaQLAilyCCqfpEiY1gpa160AiCuWHJUjY=
github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00=
github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM=
@@ -1372,6 +1411,7 @@ github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LE
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y=
github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M= github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M=
github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k= github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k=
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
@@ -1458,10 +1498,13 @@ github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsO
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
@@ -1521,6 +1564,7 @@ github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJ
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ=
github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk=
github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de h1:D5x39vF5KCwKQaw+OC9ZPiLVHXz3UFw2+psEX+gYcto= github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de h1:D5x39vF5KCwKQaw+OC9ZPiLVHXz3UFw2+psEX+gYcto=
github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de/go.mod h1:kJun4WP5gFuHZgRjZUWWuH1DTxCtxbHDOIJsudS8jzY= github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de/go.mod h1:kJun4WP5gFuHZgRjZUWWuH1DTxCtxbHDOIJsudS8jzY=
@@ -1568,6 +1612,7 @@ github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6
github.com/olivere/elastic v6.2.35+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8= github.com/olivere/elastic v6.2.35+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
@@ -1641,6 +1686,8 @@ github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi
github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.8/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0=
github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
@@ -1753,6 +1800,7 @@ github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM= github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM=
@@ -1779,6 +1827,7 @@ github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 h1:yFl3jyaSVLNYXlnNYM5z2pagEk1dYQhfr1p20T1NyKY= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 h1:yFl3jyaSVLNYXlnNYM5z2pagEk1dYQhfr1p20T1NyKY=
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg=
github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g=
github.com/sdboyer/cue v0.5.0-beta.2.0.20230419165817-251c3ae823d8 h1:R7AphSCwo1rqpRCftz9wn2azIGAtdgn1AjxTiSdFJ1o= github.com/sdboyer/cue v0.5.0-beta.2.0.20230419165817-251c3ae823d8 h1:R7AphSCwo1rqpRCftz9wn2azIGAtdgn1AjxTiSdFJ1o=
github.com/sdboyer/cue v0.5.0-beta.2.0.20230419165817-251c3ae823d8/go.mod h1:okjJBHFQFer+a41sAe2SaGm1glWS8oEb6CmJvn5Zdws= github.com/sdboyer/cue v0.5.0-beta.2.0.20230419165817-251c3ae823d8/go.mod h1:okjJBHFQFer+a41sAe2SaGm1glWS8oEb6CmJvn5Zdws=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
@@ -1922,12 +1971,15 @@ github.com/urfave/cli v1.22.12 h1:igJgVw1JdKH+trcLWLeLwZjU9fEfPesQ+9/e4MQ44S8=
github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8=
github.com/urfave/cli/v2 v2.24.4 h1:0gyJJEBYtCV87zI/x2nZCPyDxD51K6xM8SkwjHFCNEU= github.com/urfave/cli/v2 v2.24.4 h1:0gyJJEBYtCV87zI/x2nZCPyDxD51K6xM8SkwjHFCNEU=
github.com/urfave/cli/v2 v2.24.4/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= github.com/urfave/cli/v2 v2.24.4/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w=
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
github.com/vectordotdev/go-datemath v0.1.1-0.20220323213446-f3954d0b18ae h1:oyiy3uBj1F4O3AaFh7hUGBrJjAssJhKyAbwxtkslxqo= github.com/vectordotdev/go-datemath v0.1.1-0.20220323213446-f3954d0b18ae h1:oyiy3uBj1F4O3AaFh7hUGBrJjAssJhKyAbwxtkslxqo=
github.com/vectordotdev/go-datemath v0.1.1-0.20220323213446-f3954d0b18ae/go.mod h1:PnwzbSst7KD3vpBzzlntZU5gjVa455Uqa5QPiKSYJzQ= github.com/vectordotdev/go-datemath v0.1.1-0.20220323213446-f3954d0b18ae/go.mod h1:PnwzbSst7KD3vpBzzlntZU5gjVa455Uqa5QPiKSYJzQ=
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
@@ -1968,6 +2020,7 @@ github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI=
github.com/yalue/merged_fs v1.2.2 h1:vXHTpJBluJryju7BBpytr3PDIkzsPMpiEknxVGPhN/I= github.com/yalue/merged_fs v1.2.2 h1:vXHTpJBluJryju7BBpytr3PDIkzsPMpiEknxVGPhN/I=
github.com/yalue/merged_fs v1.2.2/go.mod h1:WqqchfVYQyclV2tnR7wtRhBddzBvLVR83Cjw9BKQw0M= github.com/yalue/merged_fs v1.2.2/go.mod h1:WqqchfVYQyclV2tnR7wtRhBddzBvLVR83Cjw9BKQw0M=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
@@ -2138,6 +2191,7 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -2240,6 +2294,7 @@ golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190424112056-4829fb13d2c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190424112056-4829fb13d2c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -2292,6 +2347,7 @@ golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -2404,6 +2460,7 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -2569,11 +2626,13 @@ golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181112210238-4b1f3b6b1646/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181112210238-4b1f3b6b1646/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -2784,10 +2843,12 @@ gopkg.in/fsnotify/fsnotify.v1 v1.4.7 h1:XNNYLJHt73EyYiCZi6+xjupS9CpvmiDgjPTAjrBl
gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE= gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE=
gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
@@ -2795,6 +2856,7 @@ gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/mail.v2 v2.3.1 h1:WYFn/oANrAGP2C0dcV6/pbkPzv8yGzqTjPmTeO7qoXk= gopkg.in/mail.v2 v2.3.1 h1:WYFn/oANrAGP2C0dcV6/pbkPzv8yGzqTjPmTeO7qoXk=
gopkg.in/mail.v2 v2.3.1/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/mail.v2 v2.3.1/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=
gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/telebot.v3 v3.1.3/go.mod h1:GJKwwWqp9nSkIVN51eRKU78aB5f5OnQuWdwiIZfPbko= gopkg.in/telebot.v3 v3.1.3/go.mod h1:GJKwwWqp9nSkIVN51eRKU78aB5f5OnQuWdwiIZfPbko=
@@ -2812,6 +2874,7 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

File diff suppressed because it is too large Load Diff

View File

@@ -4,27 +4,22 @@ name: "Folder"
maturity: "merged" maturity: "merged"
description: "A folder is a collection of resources that are grouped together and can share permissions." description: "A folder is a collection of resources that are grouped together and can share permissions."
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
//0.0 spec: {
{ // Unique folder id. (will be k8s name)
uid: string
spec: { // Folder title
// Unique folder id. (will be k8s name) title: string
uid: string
// Folder title // Description of the folder.
title: string description?: string
} @cuetsy(kind="interface")
// Description of the folder. //
description?: string // TODO:
} @cuetsy(kind="interface") // common metadata will soon support setting the parent folder in the metadata
// //
// TODO: }
// common metadata will soon support setting the parent folder in the metadata }]
//
},
]
},
]

View File

@@ -9,59 +9,55 @@ name: "LibraryPanel"
maturity: "experimental" maturity: "experimental"
description: "A standalone panel" description: "A standalone panel"
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
// 0.0 spec: {
{ // Folder UID
spec: { folderUid?: string @grafanamaturity(ToMetadata="sys")
// Folder UID
folderUid?: string @grafanamaturity(ToMetadata="sys")
// Library element UID // Library element UID
uid: string uid: string
// Panel name (also saved in the model) // Panel name (also saved in the model)
name: string & strings.MinRunes(1) name: string & strings.MinRunes(1)
// Panel description // Panel description
description?: string description?: string
// The panel type (from inside the model) // The panel type (from inside the model)
type: string & strings.MinRunes(1) type: string & strings.MinRunes(1)
// Dashboard version when this was saved (zero if unknown) // Dashboard version when this was saved (zero if unknown)
schemaVersion?: uint16 schemaVersion?: uint16
// panel version, incremented each time the dashboard is updated. // panel version, incremented each time the dashboard is updated.
version: int64 @grafanamaturity(NeedsExpertReview) version: int64 @grafanamaturity(NeedsExpertReview)
// TODO: should be the same panel schema defined in dashboard // TODO: should be the same panel schema defined in dashboard
// Typescript: Omit<Panel, 'gridPos' | 'id' | 'libraryPanel'>; // Typescript: Omit<Panel, 'gridPos' | 'id' | 'libraryPanel'>;
model: {...} model: {...}
// Object storage metadata // Object storage metadata
meta?: #LibraryElementDTOMeta @grafanamaturity(ToMetadata="sys") meta?: #LibraryElementDTOMeta @grafanamaturity(ToMetadata="sys")
} @cuetsy(kind="interface") @grafana(TSVeneer="type") } @cuetsy(kind="interface") @grafana(TSVeneer="type")
#LibraryElementDTOMetaUser: { #LibraryElementDTOMetaUser: {
id: int64 id: int64
name: string name: string
avatarUrl: string avatarUrl: string
} @cuetsy(kind="interface") @grafanamaturity(NeedsExpertReview) } @cuetsy(kind="interface") @grafanamaturity(NeedsExpertReview)
#LibraryElementDTOMeta: { #LibraryElementDTOMeta: {
folderName: string folderName: string
folderUid: string @grafanamaturity(ToMetadata="sys") folderUid: string @grafanamaturity(ToMetadata="sys")
connectedDashboards: int64 connectedDashboards: int64
created: string & time.Time created: string & time.Time
updated: string & time.Time updated: string & time.Time
createdBy: #LibraryElementDTOMetaUser @grafanamaturity(ToMetadata="sys") createdBy: #LibraryElementDTOMetaUser @grafanamaturity(ToMetadata="sys")
updatedBy: #LibraryElementDTOMetaUser @grafanamaturity(ToMetadata="sys") updatedBy: #LibraryElementDTOMetaUser @grafanamaturity(ToMetadata="sys")
} @cuetsy(kind="interface") @grafanamaturity(NeedsExpertReview) } @cuetsy(kind="interface") @grafanamaturity(NeedsExpertReview)
}, }
] }]
},
]

View File

@@ -4,48 +4,44 @@ name: "Playlist"
maturity: "merged" maturity: "merged"
description: "A playlist is a series of dashboards that is automatically rotated in the browser, on a configurable interval." description: "A playlist is a series of dashboards that is automatically rotated in the browser, on a configurable interval."
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
//0.0 spec: {
{ // Unique playlist identifier. Generated on creation, either by the
spec: { // creator of the playlist of by the application.
// Unique playlist identifier. Generated on creation, either by the uid: string
// creator of the playlist of by the application.
uid: string
// Name of the playlist. // Name of the playlist.
name: string name: string
// Interval sets the time between switching views in a playlist. // Interval sets the time between switching views in a playlist.
// FIXME: Is this based on a standardized format or what options are available? Can datemath be used? // FIXME: Is this based on a standardized format or what options are available? Can datemath be used?
interval: string | *"5m" interval: string | *"5m"
// The ordered list of items that the playlist will iterate over. // The ordered list of items that the playlist will iterate over.
// FIXME! This should not be optional, but changing it makes the godegen awkward // FIXME! This should not be optional, but changing it makes the godegen awkward
items?: [...#PlaylistItem] items?: [...#PlaylistItem]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
/////////////////////////////////////// ///////////////////////////////////////
// Definitions (referenced above) are declared below // Definitions (referenced above) are declared below
#PlaylistItem: { #PlaylistItem: {
// Type of the item. // Type of the item.
type: "dashboard_by_uid" | "dashboard_by_id" | "dashboard_by_tag" type: "dashboard_by_uid" | "dashboard_by_id" | "dashboard_by_tag"
// Value depends on type and describes the playlist item. // Value depends on type and describes the playlist item.
// //
// - dashboard_by_id: The value is an internal numerical identifier set by Grafana. This // - dashboard_by_id: The value is an internal numerical identifier set by Grafana. This
// is not portable as the numerical identifier is non-deterministic between different instances. // is not portable as the numerical identifier is non-deterministic between different instances.
// Will be replaced by dashboard_by_uid in the future. (deprecated) // Will be replaced by dashboard_by_uid in the future. (deprecated)
// - dashboard_by_tag: The value is a tag which is set on any number of dashboards. All // - dashboard_by_tag: The value is a tag which is set on any number of dashboards. All
// dashboards behind the tag will be added to the playlist. // dashboards behind the tag will be added to the playlist.
// - dashboard_by_uid: The value is the dashboard UID // - dashboard_by_uid: The value is the dashboard UID
value: string value: string
// Title is an unused property -- it will be removed in the future // Title is an unused property -- it will be removed in the future
title?: string title?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
},
]

View File

@@ -4,36 +4,33 @@ name: "Preferences"
maturity: "merged" maturity: "merged"
description: "The user or team frontend preferences" description: "The user or team frontend preferences"
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ spec: {
spec: { // UID for the home dashboard
// UID for the home dashboard homeDashboardUID?: string
homeDashboardUID?: string
// The timezone selection // The timezone selection
// TODO: this should use the timezone defined in common // TODO: this should use the timezone defined in common
timezone?: string timezone?: string
// day of the week (sunday, monday, etc) // day of the week (sunday, monday, etc)
weekStart?: string weekStart?: string
// light, dark, empty is default // light, dark, empty is default
theme?: string theme?: string
// Selected language (beta) // Selected language (beta)
language?: string language?: string
// Explore query history preferences // Explore query history preferences
queryHistory?: #QueryHistoryPreference queryHistory?: #QueryHistoryPreference
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryHistoryPreference: { #QueryHistoryPreference: {
// one of: '' | 'query' | 'starred'; // one of: '' | 'query' | 'starred';
homeTab?: string homeTab?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
},
]

View File

@@ -4,26 +4,22 @@ name: "PublicDashboard"
maturity: "merged" maturity: "merged"
description: "Public dashboard configuration" description: "Public dashboard configuration"
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
// 0.0 spec: {
{ // Unique public dashboard identifier
spec: { uid: string
// Unique public dashboard identifier // Dashboard unique identifier referenced by this public dashboard
uid: string dashboardUid: string
// Dashboard unique identifier referenced by this public dashboard // Unique public access token
dashboardUid: string accessToken?: string
// Unique public access token // Flag that indicates if the public dashboard is enabled
accessToken?: string isEnabled: bool
// Flag that indicates if the public dashboard is enabled // Flag that indicates if annotations are enabled
isEnabled: bool annotationsEnabled: bool
// Flag that indicates if annotations are enabled // Flag that indicates if the time range picker is enabled
annotationsEnabled: bool timeSelectionEnabled: bool
// Flag that indicates if the time range picker is enabled } @cuetsy(kind="interface")
timeSelectionEnabled: bool }
} @cuetsy(kind="interface") }]
},
]
},
]

View File

@@ -4,42 +4,38 @@ name: "ServiceAccount"
maturity: "merged" maturity: "merged"
description: "system account" description: "system account"
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
// v0.0 spec: {
{ // ID is the unique identifier of the service account in the database.
spec: { id: int64 @grafanamaturity(ToMetadata="sys")
// ID is the unique identifier of the service account in the database. // OrgId is the ID of an organisation the service account belongs to.
id: int64 @grafanamaturity(ToMetadata="sys") orgId: int64 @grafanamaturity(ToMetadata="sys")
// OrgId is the ID of an organisation the service account belongs to. // Name of the service account.
orgId: int64 @grafanamaturity(ToMetadata="sys") name: string
// Name of the service account. // Login of the service account.
name: string login: string
// Login of the service account. // IsDisabled indicates if the service account is disabled.
login: string isDisabled: bool
// IsDisabled indicates if the service account is disabled. // Role is the Grafana organization role of the service account which can be 'Viewer', 'Editor', 'Admin'.
isDisabled: bool role: #OrgRole @grafanamaturity(ToMetadata="kind")
// Role is the Grafana organization role of the service account which can be 'Viewer', 'Editor', 'Admin'. // Tokens is the number of active tokens for the service account.
role: #OrgRole @grafanamaturity(ToMetadata="kind") // Tokens are used to authenticate the service account against Grafana.
// Tokens is the number of active tokens for the service account. tokens: int64 @grafanamaturity(ToMetadata="kind")
// Tokens are used to authenticate the service account against Grafana. // AvatarUrl is the service account's avatar URL. It allows the frontend to display a picture in front
tokens: int64 @grafanamaturity(ToMetadata="kind") // of the service account.
// AvatarUrl is the service account's avatar URL. It allows the frontend to display a picture in front avatarUrl: string @grafanamaturity(ToMetadata="kind")
// of the service account. // AccessControl metadata associated with a given resource.
avatarUrl: string @grafanamaturity(ToMetadata="kind") accessControl?: {
// AccessControl metadata associated with a given resource. [string]: bool @grafanamaturity(ToMetadata="sys")
accessControl?: { }
[string]: bool @grafanamaturity(ToMetadata="sys")
}
// Teams is a list of teams the service account belongs to. // Teams is a list of teams the service account belongs to.
teams?: [...string] @grafanamaturity(ToMetadata="sys") teams?: [...string] @grafanamaturity(ToMetadata="sys")
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// OrgRole is a Grafana Organization Role which can be 'Viewer', 'Editor', 'Admin'. // OrgRole is a Grafana Organization Role which can be 'Viewer', 'Editor', 'Admin'.
#OrgRole: "Admin" | "Editor" | "Viewer" @cuetsy(kind="type") #OrgRole: "Admin" | "Editor" | "Viewer" @cuetsy(kind="type")
}, }
] }]
},
]

View File

@@ -4,18 +4,14 @@ name: "Team"
maturity: "merged" maturity: "merged"
description: "A team is a named grouping of Grafana users to which access control rules may be assigned." description: "A team is a named grouping of Grafana users to which access control rules may be assigned."
lineage: seqs: [ lineage: schemas: [{
{ version: [0, 0]
schemas: [ schema: {
// v0.0 spec: {
{ // Name of the team.
spec: { name: string
// Name of the team. // Email of the team.
name: string email?: string
// Email of the team. } @cuetsy(kind="interface")
email?: string }
} @cuetsy(kind="interface") }]
},
]
},
]

View File

@@ -8,6 +8,10 @@
// //
// Run 'make gen-cue' from repository root to regenerate. // Run 'make gen-cue' from repository root to regenerate.
/**
* TODO:
* common metadata will soon support setting the parent folder in the metadata
*/
export interface Folder { export interface Folder {
/** /**
* Description of the folder. * Description of the folder.

View File

@@ -13,6 +13,8 @@ import (
"github.com/grafana/thema/encoding/openapi" "github.com/grafana/thema/encoding/openapi"
) )
var schPath = cue.MakePath(cue.Hid("_#schema", "github.com/grafana/thema"))
type ResourceGoTypesJenny struct { type ResourceGoTypesJenny struct {
ApplyFuncs []dstutil.ApplyFunc ApplyFuncs []dstutil.ApplyFunc
ExpandReferences bool ExpandReferences bool
@@ -31,7 +33,7 @@ func (ag *ResourceGoTypesJenny) Generate(kind kindsys.Kind) (*codejen.File, erro
} }
sch := sfg.Schema sch := sfg.Schema
iter, err := sch.Underlying().Fields() iter, err := sch.Underlying().LookupPath(schPath).Fields()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -77,7 +79,7 @@ func (g *SubresourceGoTypesJenny) Generate(kind kindsys.Kind) (codejen.Files, er
// Iterate through all top-level fields and make go types for them // Iterate through all top-level fields and make go types for them
// (this should consist of "spec" and arbitrary subresources) // (this should consist of "spec" and arbitrary subresources)
i, err := sch.Underlying().Fields() i, err := sch.Underlying().LookupPath(schPath).Fields()
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -50,7 +50,13 @@ func (gen *genTSVeneerIndex) Generate(kinds ...kindsys.Kind) (*codejen.File, err
if err != nil { if err != nil {
return nil, fmt.Errorf("%s: %w", def.Props().Common().Name, err) return nil, fmt.Errorf("%s: %w", def.Props().Common().Name, err)
} }
renameSpecNode(def.Props().Common().Name, f) // The obvious approach would be calling renameSpecNode() here, same as in the ts resource jenny,
// to rename the "spec" field to the name of the kind. But that was causing extra
// default elements to generate that didn't actually exist. Instead,
// findDeclNode() is aware of "spec" and does the change on the fly. Preserving this
// as a reminder in case we want to switch back, though.
// renameSpecNode(def.Props().Common().Name, f)
elems, err := gen.extractTSIndexVeneerElements(def, f) elems, err := gen.extractTSIndexVeneerElements(def, f)
if err != nil { if err != nil {
return nil, fmt.Errorf("%s: %w", def.Props().Common().Name, err) return nil, fmt.Errorf("%s: %w", def.Props().Common().Name, err)
@@ -66,7 +72,7 @@ func (gen *genTSVeneerIndex) extractTSIndexVeneerElements(def kindsys.Kind, tf *
comm := def.Props().Common() comm := def.Props().Common()
// Check the root, then walk the tree // Check the root, then walk the tree
rootv := lin.Latest().Underlying() rootv := lin.Latest().Underlying().LookupPath(schPath)
var raw, custom, rawD, customD ast.Idents var raw, custom, rawD, customD ast.Idents
@@ -85,18 +91,14 @@ func (gen *genTSVeneerIndex) extractTSIndexVeneerElements(def kindsys.Kind, tf *
if !(sels[0].IsDefinition() || sels[0].String() == "spec") { if !(sels[0].IsDefinition() || sels[0].String() == "spec") {
return false return false
} }
// It might seem to make sense that we'd strip replaceout the leading # here for // It might seem to make sense that we'd strip out the leading # here for
// definitions. However, cuetsy's tsast actually has the # still present in its // definitions. However, cuetsy's tsast actually has the # still present in its
// Ident types, stripping it replaceout on the fly when stringifying. // Ident types, stripping it out on the fly when stringifying.
name = sels[0].String() name = sels[0].String()
} }
if name == "spec" {
name = comm.Name
}
// Search the generated TS AST for the type and default def nodes // Search the generated TS AST for the type and default def nodes
pair := findDeclNode(name, tf) pair := findDeclNode(name, comm.Name, tf)
if pair.T == nil { if pair.T == nil {
// No generated type for this item, skip it // No generated type for this item, skip it
return false return false
@@ -208,8 +210,13 @@ type tsVeneerAttr struct {
target string target string
} }
func findDeclNode(name string, tf *ast.File) declPair { func findDeclNode(name, basename string, tf *ast.File) declPair {
var p declPair var p declPair
if name == basename {
return declPair{}
}
for _, def := range tf.Nodes { for _, def := range tf.Nodes {
// Peer through export keywords // Peer through export keywords
if ex, is := def.(ast.ExportKeyword); is { if ex, is := def.(ast.ExportKeyword); is {
@@ -221,10 +228,16 @@ func findDeclNode(name string, tf *ast.File) declPair {
if x.Name.Name == name { if x.Name.Name == name {
p.T = &x.Name p.T = &x.Name
_, p.isEnum = x.Type.(ast.EnumType) _, p.isEnum = x.Type.(ast.EnumType)
if name == "spec" {
p.T.Name = basename
}
} }
case ast.VarDecl: case ast.VarDecl:
if x.Names.Idents[0].Name == "default"+name { if x.Names.Idents[0].Name == "default"+name {
p.D = &x.Names.Idents[0] p.D = &x.Names.Idents[0]
if name == "spec" {
p.D.Name = "default" + basename
}
} }
} }
} }

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -9,7 +9,8 @@
package folder package folder
// Spec defines model for Spec. // TODO:
// common metadata will soon support setting the parent folder in the metadata
type Spec struct { type Spec struct {
// Description of the folder. // Description of the folder.
Description *string `json:"description,omitempty"` Description *string `json:"description,omitempty"`

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -16,6 +16,13 @@ const (
OperatorStateStateSuccess OperatorStateState = "success" OperatorStateStateSuccess OperatorStateState = "success"
) )
// Defines values for StatusOperatorStateState.
const (
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
)
// OperatorState defines model for OperatorState. // OperatorState defines model for OperatorState.
type OperatorState struct { type OperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format // descriptiveState is an optional more descriptive state field which has no requirements on format
@@ -43,5 +50,25 @@ type Status struct {
// operatorStates is a map of operator ID to operator state evaluations. // operatorStates is a map of operator ID to operator state evaluations.
// Any operator which consumes this kind SHOULD add its state evaluation information to this field. // Any operator which consumes this kind SHOULD add its state evaluation information to this field.
OperatorStates map[string]OperatorState `json:"operatorStates,omitempty"` OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
} }
// StatusOperatorState defines model for status.#OperatorState.
type StatusOperatorState struct {
// descriptiveState is an optional more descriptive state field which has no requirements on format
DescriptiveState *string `json:"descriptiveState,omitempty"`
// details contains any extra information that is operator-specific
Details map[string]interface{} `json:"details,omitempty"`
// lastEvaluation is the ResourceVersion last evaluated
LastEvaluation string `json:"lastEvaluation"`
// state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
State StatusOperatorStateState `json:"state"`
}
// StatusOperatorStateState state describes the state of the lastEvaluation.
// It is limited to three possible states for machine evaluation.
type StatusOperatorStateState string

View File

@@ -1,13 +1,12 @@
package grafanaplugin package grafanaplugin
composableKinds: DataQuery: lineage: { composableKinds: DataQuery: lineage: {
seqs: [ schemas: [
{ {
schemas: [ version: [0, 0]
{ schema: {
foo: string foo: string
}, }
]
}, },
] ]
} }

View File

@@ -1,13 +1,12 @@
package grafanaplugin package grafanaplugin
composableKinds: DataQuery: lineage: { composableKinds: DataQuery: lineage: {
seqs: [ schemas: [
{ {
schemas: [ version: [0, 0]
{ schema: {
foo: string foo: string
}, }
]
}, },
] ]
} }

View File

@@ -1,18 +1,17 @@
package grafanaplugin package grafanaplugin
composableKinds: DataSourceCfg: lineage: { composableKinds: DataSourceCfg: lineage: {
seqs: [ schemas: [
{ {
schemas: [ version: [0, 0]
{ schema: {
Options: { Options: {
foo: string foo: string
} }
SecureOptions: { SecureOptions: {
bar: string bar: string
} }
}, }
]
}, },
] ]
} }

View File

@@ -1,15 +1,14 @@
package grafanaplugin package grafanaplugin
composableKinds: PanelCfg: lineage: { composableKinds: PanelCfg: lineage: {
seqs: [ schemas: [
{ {
schemas: [ version: [0, 0]
{ schema: {
Options: { Options: {
foo: string foo: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
]
}, },
] ]
} }

View File

@@ -3,7 +3,6 @@ package pfs
import ( import (
"fmt" "fmt"
"io/fs" "io/fs"
"os"
"path/filepath" "path/filepath"
"sort" "sort"
@@ -39,7 +38,7 @@ func (psr *declParser) Parse(root fs.FS) ([]*PluginDecl, error) {
continue continue
} }
dir := os.DirFS(path) dir, _ := fs.Sub(root, path)
pp, err := ParsePluginFS(dir, psr.rt) pp, err := ParsePluginFS(dir, psr.rt)
if err != nil { if err != nil {
return nil, fmt.Errorf("parsing plugin failed for %s: %s", dir, err) return nil, fmt.Errorf("parsing plugin failed for %s: %s", dir, err)

View File

@@ -205,7 +205,13 @@ func ParsePluginFS(fsys fs.FS, rt *thema.Runtime) (ParsedPlugin, error) {
}) })
bi.Files = append(bi.Files, f) bi.Files = append(bi.Files, f)
gpi := ctx.BuildInstance(bi).Unify(gpv) gpi := ctx.BuildInstance(bi)
// Temporary hack while we figure out what in the elasticsearch lineage turns
// this into an endless loop in thema, and why unifying twice is anything other
// than a total no-op.
if pp.Properties.Id != "elasticsearch" {
gpi = gpi.Unify(gpv)
}
if gpi.Err() != nil { if gpi.Err() != nil {
return ParsedPlugin{}, errors.Wrap(errors.Promote(ErrInvalidGrafanaPluginInstance, pp.Properties.Id), gpi.Err()) return ParsedPlugin{}, errors.Wrap(errors.Promote(ErrInvalidGrafanaPluginInstance, pp.Properties.Id), gpi.Err())
} }

View File

@@ -9,404 +9,402 @@ import (
thema.#Lineage thema.#Lineage
name: "plugindef" name: "plugindef"
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ // Unique name of the plugin. If the plugin is published on
// Unique name of the plugin. If the plugin is published on // grafana.com, then the plugin `id` has to follow the naming
// grafana.com, then the plugin `id` has to follow the naming // conventions.
// conventions. id: string & strings.MinRunes(1)
id: string & strings.MinRunes(1) id: =~"^([0-9a-z]+\\-([0-9a-z]+\\-)?(\(strings.Join([ for t in _types {t}], "|"))))|(alertGroups|alertlist|annolist|barchart|bargauge|candlestick|canvas|dashlist|debug|datagrid|gauge|geomap|gettingstarted|graph|heatmap|histogram|icon|live|logs|news|nodeGraph|piechart|pluginlist|stat|state-timeline|status-history|table|table-old|text|timeseries|trend|traces|welcome|xychart|alertmanager|cloudwatch|dashboard|elasticsearch|grafana|grafana-azure-monitor-datasource|graphite|influxdb|jaeger|loki|mixed|mssql|mysql|opentsdb|postgres|prometheus|stackdriver|tempo|testdata|zipkin|phlare|parca)$"
id: =~"^([0-9a-z]+\\-([0-9a-z]+\\-)?(\(strings.Join([ for t in _types {t}], "|"))))|(alertGroups|alertlist|annolist|barchart|bargauge|candlestick|canvas|dashlist|debug|datagrid|gauge|geomap|gettingstarted|graph|heatmap|histogram|icon|live|logs|news|nodeGraph|piechart|pluginlist|stat|state-timeline|status-history|table|table-old|text|timeseries|trend|traces|welcome|xychart|alertmanager|cloudwatch|dashboard|elasticsearch|grafana|grafana-azure-monitor-datasource|graphite|influxdb|jaeger|loki|mixed|mssql|mysql|opentsdb|postgres|prometheus|stackdriver|tempo|testdata|zipkin|phlare|parca)$"
// Human-readable name of the plugin that is shown to the user in
// Human-readable name of the plugin that is shown to the user in // the UI.
// the UI. name: string
name: string
// The set of all plugin types. This hidden field exists solely
// The set of all plugin types. This hidden field exists solely // so that the set can be string-interpolated into other fields.
// so that the set can be string-interpolated into other fields. _types: ["app", "datasource", "panel", "renderer", "secretsmanager"]
_types: ["app", "datasource", "panel", "renderer", "secretsmanager"]
// type indicates which type of Grafana plugin this is, of the defined
// type indicates which type of Grafana plugin this is, of the defined // set of Grafana plugin types.
// set of Grafana plugin types. type: or(_types)
type: or(_types)
// IncludeType is a string identifier of a plugin include type, which is
// IncludeType is a string identifier of a plugin include type, which is // a superset of plugin types.
// a superset of plugin types. #IncludeType: type | "dashboard" | "page"
#IncludeType: type | "dashboard" | "page"
// Metadata about the plugin
// Metadata about the plugin info: #Info
info: #Info
// Metadata about a Grafana plugin. Some fields are used on the plugins
// Metadata about a Grafana plugin. Some fields are used on the plugins // page in Grafana and others on grafana.com, if the plugin is published.
// page in Grafana and others on grafana.com, if the plugin is published. #Info: {
#Info: { // Information about the plugin author
// Information about the plugin author author?: {
author?: { // Author's name
// Author's name name?: string
name?: string
// Author's name
// Author's name email?: string
email?: string
// Link to author's website
// Link to author's website url?: string
url?: string }
}
// Build information
// Build information build?: #BuildInfo
build?: #BuildInfo
// Description of plugin. Used on the plugins page in Grafana and
// Description of plugin. Used on the plugins page in Grafana and // for search on grafana.com.
// for search on grafana.com. description?: string
description?: string
// Array of plugin keywords. Used for search on grafana.com.
// Array of plugin keywords. Used for search on grafana.com. keywords: [...string]
keywords: [...string] // should be this, but CUE to openapi converter screws this up
// should be this, but CUE to openapi converter screws this up // by inserting a non-concrete default.
// by inserting a non-concrete default. // keywords: [string, ...string]
// keywords: [string, ...string]
// An array of link objects to be displayed on this plugin's
// An array of link objects to be displayed on this plugin's // project page in the form `{name: 'foo', url:
// project page in the form `{name: 'foo', url: // 'http://example.com'}`
// 'http://example.com'}` links?: [...{
links?: [...{ name?: string
name?: string url?: string
url?: string }]
}]
// SVG images that are used as plugin icons
// SVG images that are used as plugin icons logos?: {
logos?: { // Link to the "small" version of the plugin logo, which must be
// Link to the "small" version of the plugin logo, which must be // an SVG image. "Large" and "small" logos can be the same image.
// an SVG image. "Large" and "small" logos can be the same image. small: string
small: string
// Link to the "large" version of the plugin logo, which must be
// Link to the "large" version of the plugin logo, which must be // an SVG image. "Large" and "small" logos can be the same image.
// an SVG image. "Large" and "small" logos can be the same image. large: string
large: string }
}
// An array of screenshot objects in the form `{name: 'bar', path:
// An array of screenshot objects in the form `{name: 'bar', path: // 'img/screenshot.png'}`
// 'img/screenshot.png'}` screenshots?: [...{
screenshots?: [...{ name?: string
name?: string path?: string
path?: string }]
}]
// Date when this plugin was built
// Date when this plugin was built updated?: =~"^(\\d{4}-\\d{2}-\\d{2}|\\%TODAY\\%)$"
updated?: =~"^(\\d{4}-\\d{2}-\\d{2}|\\%TODAY\\%)$"
// Project version of this commit, e.g. `6.7.x`
// Project version of this commit, e.g. `6.7.x` version?: =~"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)|(\\%VERSION\\%)$"
version?: =~"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)|(\\%VERSION\\%)$" }
}
#BuildInfo: {
#BuildInfo: { // Time when the plugin was built, as a Unix timestamp
// Time when the plugin was built, as a Unix timestamp time?: int64
time?: int64 repo?: string
repo?: string
// Git branch the plugin was built from
// Git branch the plugin was built from branch?: string
branch?: string
// Git hash of the commit the plugin was built from
// Git hash of the commit the plugin was built from hash?: string
hash?: string number?: int64
"number"?: int64
// GitHub pull request the plugin was built from
// GitHub pull request the plugin was built from pr?: int32
pr?: int32 }
}
// Dependency information related to Grafana and other plugins
// Dependency information related to Grafana and other plugins dependencies: #Dependencies
dependencies: #Dependencies
#Dependencies: {
#Dependencies: { // (Deprecated) Required Grafana version for this plugin, e.g.
// (Deprecated) Required Grafana version for this plugin, e.g. // `6.x.x 7.x.x` to denote plugin requires Grafana v6.x.x or
// `6.x.x 7.x.x` to denote plugin requires Grafana v6.x.x or // v7.x.x.
// v7.x.x. grafanaVersion?: =~"^([0-9]+)(\\.[0-9x]+)?(\\.[0-9x])?$"
grafanaVersion?: =~"^([0-9]+)(\\.[0-9x]+)?(\\.[0-9x])?$"
// Required Grafana version for this plugin. Validated using
// Required Grafana version for this plugin. Validated using // https://github.com/npm/node-semver.
// https://github.com/npm/node-semver. grafanaDependency: =~"^(<=|>=|<|>|=|~|\\^)?([0-9]+)(\\.[0-9x\\*]+)(\\.[0-9x\\*]+)?(\\s(<=|>=|<|=>)?([0-9]+)(\\.[0-9x]+)(\\.[0-9x]+))?$"
grafanaDependency: =~"^(<=|>=|<|>|=|~|\\^)?([0-9]+)(\\.[0-9x\\*]+)(\\.[0-9x\\*]+)?(\\s(<=|>=|<|=>)?([0-9]+)(\\.[0-9x]+)(\\.[0-9x]+))?$"
// An array of required plugins on which this plugin depends
// An array of required plugins on which this plugin depends plugins?: [...#Dependency]
plugins?: [...#Dependency] }
}
// Dependency describes another plugin on which a plugin depends.
// Dependency describes another plugin on which a plugin depends. // The id refers to the plugin package identifier, as given on
// The id refers to the plugin package identifier, as given on // the grafana.com plugin marketplace.
// the grafana.com plugin marketplace. #Dependency: {
#Dependency: { id: =~"^[0-9a-z]+\\-([0-9a-z]+\\-)?(app|panel|datasource)$"
id: =~"^[0-9a-z]+\\-([0-9a-z]+\\-)?(app|panel|datasource)$" type: "app" | "datasource" | "panel"
type: "app" | "datasource" | "panel" name: string
name: string version: string
version: string ...
... }
}
// Schema definition for the plugin.json file. Used primarily for schema validation.
// Schema definition for the plugin.json file. Used primarily for schema validation. $schema?: string
$schema?: string
// For data source plugins, if the plugin supports alerting. Requires `backend` to be set to `true`.
// For data source plugins, if the plugin supports alerting. Requires `backend` to be set to `true`. alerting?: bool
alerting?: bool
// For data source plugins, if the plugin supports annotation
// For data source plugins, if the plugin supports annotation // queries.
// queries. annotations?: bool
annotations?: bool
// Set to true for app plugins that should be enabled and pinned to the navigation bar in all orgs.
// Set to true for app plugins that should be enabled and pinned to the navigation bar in all orgs. autoEnabled?: bool
autoEnabled?: bool
// If the plugin has a backend component.
// If the plugin has a backend component. backend?: bool
backend?: bool
// [internal only] Indicates whether the plugin is developed and shipped as part
// [internal only] Indicates whether the plugin is developed and shipped as part // of Grafana. Also known as a 'core plugin'.
// of Grafana. Also known as a 'core plugin'. builtIn: bool | *false
builtIn: bool | *false
// Plugin category used on the Add data source page.
// Plugin category used on the Add data source page. category?: "tsdb" | "logging" | "cloud" | "tracing" | "profiling" | "sql" | "enterprise" | "iot" | "other"
category?: "tsdb" | "logging" | "cloud" | "tracing" | "profiling" | "sql" | "enterprise" | "iot" | "other"
// Grafana Enterprise specific features.
// Grafana Enterprise specific features. enterpriseFeatures?: {
enterpriseFeatures?: { // Enable/Disable health diagnostics errors. Requires Grafana
// Enable/Disable health diagnostics errors. Requires Grafana // >=7.5.5.
// >=7.5.5. healthDiagnosticsErrors?: bool | *false
healthDiagnosticsErrors?: bool | *false ...
... }
}
// The first part of the file name of the backend component
// The first part of the file name of the backend component // executable. There can be multiple executables built for
// executable. There can be multiple executables built for // different operating system and architecture. Grafana will
// different operating system and architecture. Grafana will // check for executables named `<executable>_<$GOOS>_<lower case
// check for executables named `<executable>_<$GOOS>_<lower case // $GOARCH><.exe for Windows>`, e.g. `plugin_linux_amd64`.
// $GOARCH><.exe for Windows>`, e.g. `plugin_linux_amd64`. // Combination of $GOOS and $GOARCH can be found here:
// Combination of $GOOS and $GOARCH can be found here: // https://golang.org/doc/install/source#environment.
// https://golang.org/doc/install/source#environment. executable?: string
executable?: string
// [internal only] Excludes the plugin from listings in Grafana's UI. Only
// [internal only] Excludes the plugin from listings in Grafana's UI. Only // allowed for `builtIn` plugins.
// allowed for `builtIn` plugins. hideFromList: bool | *false
hideFromList: bool | *false
// Resources to include in plugin.
// Resources to include in plugin. includes?: [...#Include]
includes?: [...#Include]
// A resource to be included in a plugin.
// A resource to be included in a plugin. #Include: {
#Include: { // Unique identifier of the included resource
// Unique identifier of the included resource uid?: string
uid?: string type: #IncludeType
type: #IncludeType name?: string
name?: string
// (Legacy) The Angular component to use for a page.
// (Legacy) The Angular component to use for a page. component?: string
component?: string
// The minimum role a user must have to see this page in the navigation menu.
// The minimum role a user must have to see this page in the navigation menu. role?: "Admin" | "Editor" | "Viewer"
role?: "Admin" | "Editor" | "Viewer"
// RBAC action the user must have to access the route
// RBAC action the user must have to access the route action?: string
action?: string
// Used for app plugins.
// Used for app plugins. path?: string
path?: string
// Add the include to the navigation menu.
// Add the include to the navigation menu. addToNav?: bool
addToNav?: bool
// Page or dashboard when user clicks the icon in the side menu.
// Page or dashboard when user clicks the icon in the side menu. defaultNav?: bool
defaultNav?: bool
// Icon to use in the side menu. For information on available
// Icon to use in the side menu. For information on available // icon, refer to [Icons
// icon, refer to [Icons // Overview](https://developers.grafana.com/ui/latest/index.html?path=/story/docs-overview-icon--icons-overview).
// Overview](https://developers.grafana.com/ui/latest/index.html?path=/story/docs-overview-icon--icons-overview). icon?: string
icon?: string ...
... }
}
// For data source plugins, if the plugin supports logs. It may be used to filter logs only features.
// For data source plugins, if the plugin supports logs. It may be used to filter logs only features. logs?: bool
logs?: bool
// For data source plugins, if the plugin supports metric queries.
// For data source plugins, if the plugin supports metric queries. // Used to enable the plugin in the panel editor.
// Used to enable the plugin in the panel editor. metrics?: bool
metrics?: bool
// FIXME there appears to be a bug in thema that prevents this from working. Maybe it'd
// FIXME there appears to be a bug in thema that prevents this from working. Maybe it'd // help to refer to it with an alias, but thema can't support using current list syntax.
// help to refer to it with an alias, but thema can't support using current list syntax. // syntax (fixed by grafana/thema#82). Either way, for now, pascalName gets populated in Go.
// syntax (fixed by grafana/thema#82). Either way, for now, pascalName gets populated in Go. let sani = (strings.ToTitle(regexp.ReplaceAllLiteral("[^a-zA-Z]+", name, "")))
let sani = (strings.ToTitle(regexp.ReplaceAllLiteral("[^a-zA-Z]+", name, "")))
// [internal only] The PascalCase name for the plugin. Used for creating machine-friendly
// [internal only] The PascalCase name for the plugin. Used for creating machine-friendly // identifiers, typically in code generation.
// identifiers, typically in code generation. //
// // If not provided, defaults to name, but title-cased and sanitized (only
// If not provided, defaults to name, but title-cased and sanitized (only // alphabetical characters allowed).
// alphabetical characters allowed). pascalName: string & =~"^([A-Z][a-zA-Z]{1,62})$" | *sani
pascalName: string & =~"^([A-Z][a-zA-Z]{1,62})$" | *sani
// Initialize plugin on startup. By default, the plugin
// Initialize plugin on startup. By default, the plugin // initializes on first use.
// initializes on first use. preload?: bool
preload?: bool
// For data source plugins. There is a query options section in
// For data source plugins. There is a query options section in // the plugin's query editor and these options can be turned on
// the plugin's query editor and these options can be turned on // if needed.
// if needed. queryOptions?: {
queryOptions?: { // For data source plugins. If the `max data points` option should
// For data source plugins. If the `max data points` option should // be shown in the query options section in the query editor.
// be shown in the query options section in the query editor. maxDataPoints?: bool
maxDataPoints?: bool
// For data source plugins. If the `min interval` option should be
// For data source plugins. If the `min interval` option should be // shown in the query options section in the query editor.
// shown in the query options section in the query editor. minInterval?: bool
minInterval?: bool
// For data source plugins. If the `cache timeout` option should
// For data source plugins. If the `cache timeout` option should // be shown in the query options section in the query editor.
// be shown in the query options section in the query editor. cacheTimeout?: bool
cacheTimeout?: bool }
}
// Routes is a list of proxy routes, if any. For datasource plugins only.
// Routes is a list of proxy routes, if any. For datasource plugins only. routes?: [...#Route]
routes?: [...#Route]
// For panel plugins. Hides the query editor.
// For panel plugins. Hides the query editor. skipDataQuery?: bool
skipDataQuery?: bool
// Marks a plugin as a pre-release.
// Marks a plugin as a pre-release. state?: #ReleaseState
state?: #ReleaseState
// ReleaseState indicates release maturity state of a plugin.
// ReleaseState indicates release maturity state of a plugin. #ReleaseState: "alpha" | "beta" | "deprecated" | *"stable"
#ReleaseState: "alpha" | "beta" | "deprecated" | *"stable"
// For data source plugins, if the plugin supports streaming. Used in Explore to start live streaming.
// For data source plugins, if the plugin supports streaming. Used in Explore to start live streaming. streaming?: bool
streaming?: bool
// For data source plugins, if the plugin supports tracing. Used for example to link logs (e.g. Loki logs) with tracing plugins.
// For data source plugins, if the plugin supports tracing. Used for example to link logs (e.g. Loki logs) with tracing plugins. tracing?: bool
tracing?: bool
// Optional list of RBAC RoleRegistrations.
// Optional list of RBAC RoleRegistrations. // Describes and organizes the default permissions associated with any of the Grafana basic roles,
// Describes and organizes the default permissions associated with any of the Grafana basic roles, // which characterizes what viewers, editors, admins, or grafana admins can do on the plugin.
// which characterizes what viewers, editors, admins, or grafana admins can do on the plugin. // The Admin basic role inherits its default permissions from the Editor basic role which in turn
// The Admin basic role inherits its default permissions from the Editor basic role which in turn // inherits them from the Viewer basic role.
// inherits them from the Viewer basic role. roles?: [...#RoleRegistration]
roles?: [...#RoleRegistration]
// RoleRegistration describes an RBAC role and its assignments to basic roles.
// RoleRegistration describes an RBAC role and its assignments to basic roles. // It organizes related RBAC permissions on the plugin into a role and defines which basic roles
// It organizes related RBAC permissions on the plugin into a role and defines which basic roles // will get them by default.
// will get them by default. // Example: the role 'Schedules Reader' bundles permissions to view all schedules of the plugin
// Example: the role 'Schedules Reader' bundles permissions to view all schedules of the plugin // which will be granted to Admins by default.
// which will be granted to Admins by default. #RoleRegistration: {
#RoleRegistration: { // RBAC role definition to bundle related RBAC permissions on the plugin.
// RBAC role definition to bundle related RBAC permissions on the plugin. role: #Role
role: #Role
// Default assignment of the role to Grafana basic roles (Viewer, Editor, Admin, Grafana Admin)
// Default assignment of the role to Grafana basic roles (Viewer, Editor, Admin, Grafana Admin) // The Admin basic role inherits its default permissions from the Editor basic role which in turn
// The Admin basic role inherits its default permissions from the Editor basic role which in turn // inherits them from the Viewer basic role.
// inherits them from the Viewer basic role. grants: [...#BasicRole]
grants: [...#BasicRole] }
}
// Role describes an RBAC role which allows grouping multiple related permissions on the plugin,
// Role describes an RBAC role which allows grouping multiple related permissions on the plugin, // each of which has an action and an optional scope.
// each of which has an action and an optional scope. // Example: the role 'Schedules Reader' bundles permissions to view all schedules of the plugin.
// Example: the role 'Schedules Reader' bundles permissions to view all schedules of the plugin. #Role: {
#Role: { name: string
name: string name: =~"^([A-Z][0-9A-Za-z ]+)$"
name: =~"^([A-Z][0-9A-Za-z ]+)$" description: string
description: string permissions: [...#Permission]
permissions: [...#Permission] }
}
// Permission describes an RBAC permission on the plugin. A permission has an action and an optional
// Permission describes an RBAC permission on the plugin. A permission has an action and an optional // scope.
// scope. // Example: action: 'test-app.schedules:read', scope: 'test-app.schedules:*'
// Example: action: 'test-app.schedules:read', scope: 'test-app.schedules:*' #Permission: {
#Permission: { action: string
action: string scope?: string
scope?: string }
}
// BasicRole is a Grafana basic role, which can be 'Viewer', 'Editor', 'Admin' or 'Grafana Admin'.
// BasicRole is a Grafana basic role, which can be 'Viewer', 'Editor', 'Admin' or 'Grafana Admin'. // With RBAC, the Admin basic role inherits its default permissions from the Editor basic role which
// With RBAC, the Admin basic role inherits its default permissions from the Editor basic role which // in turn inherits them from the Viewer basic role.
// in turn inherits them from the Viewer basic role. #BasicRole: "Grafana Admin" | "Admin" | "Editor" | "Viewer"
#BasicRole: "Grafana Admin" | "Admin" | "Editor" | "Viewer"
// Header describes an HTTP header that is forwarded with a proxied request for
// Header describes an HTTP header that is forwarded with a proxied request for // a plugin route.
// a plugin route. #Header: {
#Header: { name: string
name: string content: string
content: string }
}
// URLParam describes query string parameters for
// URLParam describes query string parameters for // a url in a plugin route
// a url in a plugin route #URLParam: {
#URLParam: { name: string
name: string content: string
content: string }
}
// A proxy route used in datasource plugins for plugin authentication
// A proxy route used in datasource plugins for plugin authentication // and adding headers to HTTP requests made by the plugin.
// and adding headers to HTTP requests made by the plugin. // For more information, refer to [Authentication for data source
// For more information, refer to [Authentication for data source // plugins](https://grafana.com/docs/grafana/latest/developers/plugins/authentication/).
// plugins](https://grafana.com/docs/grafana/latest/developers/plugins/authentication/). #Route: {
#Route: { // For data source plugins. The route path that is replaced by the
// For data source plugins. The route path that is replaced by the // route URL field when proxying the call.
// route URL field when proxying the call. path?: string
path?: string
// For data source plugins. Route method matches the HTTP verb
// For data source plugins. Route method matches the HTTP verb // like GET or POST. Multiple methods can be provided as a
// like GET or POST. Multiple methods can be provided as a // comma-separated list.
// comma-separated list. method?: string
method?: string
// For data source plugins. Route URL is where the request is
// For data source plugins. Route URL is where the request is // proxied to.
// proxied to. url?: string
url?: string
urlParams?: [...#URLParam]
urlParams?: [...#URLParam] reqSignedIn?: bool
reqSignedIn?: bool reqRole?: string
reqRole?: string
// For data source plugins. Route headers adds HTTP headers to the
// For data source plugins. Route headers adds HTTP headers to the // proxied request.
// proxied request. headers?: [...#Header]
headers?: [...#Header]
// For data source plugins. Route headers set the body content and
// For data source plugins. Route headers set the body content and // length to the proxied request.
// length to the proxied request. body?: {
body?: { ...
... }
}
// For data source plugins. Token authentication section used with
// For data source plugins. Token authentication section used with // an OAuth API.
// an OAuth API. tokenAuth?: #TokenAuth
tokenAuth?: #TokenAuth
// For data source plugins. Token authentication section used with
// For data source plugins. Token authentication section used with // an JWT OAuth API.
// an JWT OAuth API. jwtTokenAuth?: #JWTTokenAuth
jwtTokenAuth?: #JWTTokenAuth }
}
// TODO docs
// TODO docs #TokenAuth: {
#TokenAuth: { // URL to fetch the authentication token.
// URL to fetch the authentication token. url?: string
url?: string
// The list of scopes that your application should be granted
// The list of scopes that your application should be granted // access to.
// access to. scopes?: [...string]
scopes?: [...string]
// Parameters for the token authentication request.
// Parameters for the token authentication request. params: [string]: string
params: [string]: string }
}
// TODO docs
// TODO docs // TODO should this really be separate from TokenAuth?
// TODO should this really be separate from TokenAuth? #JWTTokenAuth: {
#JWTTokenAuth: { // URL to fetch the JWT token.
// URL to fetch the JWT token. url: string
url: string
// The list of scopes that your application should be granted
// The list of scopes that your application should be granted // access to.
// access to. scopes: [...string]
scopes: [...string]
// Parameters for the JWT token authentication request.
// Parameters for the JWT token authentication request. params: [string]: string
params: [string]: string }
} }
}, }]
] lenses: []
},
]

View File

@@ -287,6 +287,9 @@ const (
) )
// Shape of a CloudWatch Annotation query // Shape of a CloudWatch Annotation query
//
// TS type is CloudWatchDefaultQuery = Omit<CloudWatchLogsQuery, 'queryMode'> & CloudWatchMetricsQuery, declared in veneer
// #CloudWatchDefaultQuery: #CloudWatchLogsQuery & #CloudWatchMetricsQuery @cuetsy(kind="type")
type CloudWatchAnnotationQuery struct { type CloudWatchAnnotationQuery struct {
// The ID of the AWS account to query for the metric, specifying `all` will query all accounts that the monitoring account is permitted to query. // The ID of the AWS account to query for the metric, specifying `all` will query all accounts that the monitoring account is permitted to query.
AccountId *string `json:"accountId,omitempty"` AccountId *string `json:"accountId,omitempty"`

View File

@@ -26,216 +26,214 @@ composableKinds: DataQuery: {
maturity: "merged" maturity: "merged"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ #AzureMonitorQuery: common.DataQuery & {
#AzureMonitorQuery: common.DataQuery & { // Azure subscription containing the resource(s) to be queried.
// Azure subscription containing the resource(s) to be queried. subscription?: string
subscription?: string
// Subscriptions to be queried via Azure Resource Graph. // Subscriptions to be queried via Azure Resource Graph.
subscriptions?: [...string] subscriptions?: [...string]
// Azure Monitor Metrics sub-query properties. // Azure Monitor Metrics sub-query properties.
azureMonitor?: #AzureMetricQuery azureMonitor?: #AzureMetricQuery
// Azure Monitor Logs sub-query properties. // Azure Monitor Logs sub-query properties.
azureLogAnalytics?: #AzureLogsQuery azureLogAnalytics?: #AzureLogsQuery
// Azure Resource Graph sub-query properties. // Azure Resource Graph sub-query properties.
azureResourceGraph?: #AzureResourceGraphQuery azureResourceGraph?: #AzureResourceGraphQuery
// Application Insights Traces sub-query properties. // Application Insights Traces sub-query properties.
azureTraces?: #AzureTracesQuery azureTraces?: #AzureTracesQuery
// @deprecated Legacy template variable support. // @deprecated Legacy template variable support.
grafanaTemplateVariableFn?: #GrafanaTemplateVariableQuery grafanaTemplateVariableFn?: #GrafanaTemplateVariableQuery
// Template variables params. These exist for backwards compatiblity with legacy template variables. // Template variables params. These exist for backwards compatiblity with legacy template variables.
resourceGroup?: string resourceGroup?: string
namespace?: string namespace?: string
resource?: string resource?: string
region?: string region?: string
// Azure Monitor query type. // Azure Monitor query type.
// queryType: #AzureQueryType // queryType: #AzureQueryType
} @cuetsy(kind="interface") @grafana(TSVeneer="type") } @cuetsy(kind="interface") @grafana(TSVeneer="type")
// Defines the supported queryTypes. GrafanaTemplateVariableFn is deprecated // Defines the supported queryTypes. GrafanaTemplateVariableFn is deprecated
#AzureQueryType: "Azure Monitor" | "Azure Log Analytics" | "Azure Resource Graph" | "Azure Traces" | "Azure Subscriptions" | "Azure Resource Groups" | "Azure Namespaces" | "Azure Resource Names" | "Azure Metric Names" | "Azure Workspaces" | "Azure Regions" | "Grafana Template Variable Function" @cuetsy(kind="enum", memberNames="AzureMonitor|LogAnalytics|AzureResourceGraph|AzureTraces|SubscriptionsQuery|ResourceGroupsQuery|NamespacesQuery|ResourceNamesQuery|MetricNamesQuery|WorkspacesQuery|LocationsQuery|GrafanaTemplateVariableFn") #AzureQueryType: "Azure Monitor" | "Azure Log Analytics" | "Azure Resource Graph" | "Azure Traces" | "Azure Subscriptions" | "Azure Resource Groups" | "Azure Namespaces" | "Azure Resource Names" | "Azure Metric Names" | "Azure Workspaces" | "Azure Regions" | "Grafana Template Variable Function" @cuetsy(kind="enum", memberNames="AzureMonitor|LogAnalytics|AzureResourceGraph|AzureTraces|SubscriptionsQuery|ResourceGroupsQuery|NamespacesQuery|ResourceNamesQuery|MetricNamesQuery|WorkspacesQuery|LocationsQuery|GrafanaTemplateVariableFn")
#AzureMetricQuery: { #AzureMetricQuery: {
// Array of resource URIs to be queried. // Array of resource URIs to be queried.
resources?: [...#AzureMonitorResource] resources?: [...#AzureMonitorResource]
// metricNamespace is used as the resource type (or resource namespace). // metricNamespace is used as the resource type (or resource namespace).
// It's usually equal to the target metric namespace. e.g. microsoft.storage/storageaccounts // It's usually equal to the target metric namespace. e.g. microsoft.storage/storageaccounts
// Kept the name of the variable as metricNamespace to avoid backward incompatibility issues. // Kept the name of the variable as metricNamespace to avoid backward incompatibility issues.
metricNamespace?: string metricNamespace?: string
// Used as the value for the metricNamespace property when it's different from the resource namespace. // Used as the value for the metricNamespace property when it's different from the resource namespace.
customNamespace?: string customNamespace?: string
// The metric to query data for within the specified metricNamespace. e.g. UsedCapacity // The metric to query data for within the specified metricNamespace. e.g. UsedCapacity
metricName?: string metricName?: string
// The Azure region containing the resource(s). // The Azure region containing the resource(s).
region?: string region?: string
// The granularity of data points to be queried. Defaults to auto. // The granularity of data points to be queried. Defaults to auto.
timeGrain?: string timeGrain?: string
// The aggregation to be used within the query. Defaults to the primaryAggregationType defined by the metric. // The aggregation to be used within the query. Defaults to the primaryAggregationType defined by the metric.
aggregation?: string aggregation?: string
// Filters to reduce the set of data returned. Dimensions that can be filtered on are defined by the metric. // Filters to reduce the set of data returned. Dimensions that can be filtered on are defined by the metric.
dimensionFilters?: [...#AzureMetricDimension] dimensionFilters?: [...#AzureMetricDimension]
// Maximum number of records to return. Defaults to 10. // Maximum number of records to return. Defaults to 10.
top?: string top?: string
// Time grains that are supported by the metric. // Time grains that are supported by the metric.
allowedTimeGrainsMs?: [...int64] allowedTimeGrainsMs?: [...int64]
// Aliases can be set to modify the legend labels. e.g. {{ resourceGroup }}. See docs for more detail. // Aliases can be set to modify the legend labels. e.g. {{ resourceGroup }}. See docs for more detail.
alias?: string alias?: string
// @deprecated // @deprecated
timeGrainUnit?: string timeGrainUnit?: string
// @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration // @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration
dimension?: string dimension?: string
// @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration // @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration
dimensionFilter?: string dimensionFilter?: string
// @deprecated Use metricNamespace instead // @deprecated Use metricNamespace instead
metricDefinition?: string metricDefinition?: string
// @deprecated Use resourceGroup, resourceName and metricNamespace instead // @deprecated Use resourceGroup, resourceName and metricNamespace instead
resourceUri?: string resourceUri?: string
// @deprecated Use resources instead // @deprecated Use resources instead
resourceGroup?: string resourceGroup?: string
// @deprecated Use resources instead // @deprecated Use resources instead
resourceName?: string resourceName?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Azure Monitor Logs sub-query properties // Azure Monitor Logs sub-query properties
#AzureLogsQuery: { #AzureLogsQuery: {
// KQL query to be executed. // KQL query to be executed.
query?: string query?: string
// Specifies the format results should be returned as. // Specifies the format results should be returned as.
resultFormat?: #ResultFormat resultFormat?: #ResultFormat
// Array of resource URIs to be queried. // Array of resource URIs to be queried.
resources?: [...string] resources?: [...string]
// Workspace ID. This was removed in Grafana 8, but remains for backwards compat // Workspace ID. This was removed in Grafana 8, but remains for backwards compat
workspace?: string workspace?: string
// @deprecated Use resources instead // @deprecated Use resources instead
resource?: string resource?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Application Insights Traces sub-query properties // Application Insights Traces sub-query properties
#AzureTracesQuery: { #AzureTracesQuery: {
// Specifies the format results should be returned as. // Specifies the format results should be returned as.
resultFormat?: #ResultFormat resultFormat?: #ResultFormat
// Array of resource URIs to be queried. // Array of resource URIs to be queried.
resources?: [...string] resources?: [...string]
// Operation ID. Used only for Traces queries. // Operation ID. Used only for Traces queries.
operationId?: string operationId?: string
// Types of events to filter by. // Types of events to filter by.
traceTypes?: [...string] traceTypes?: [...string]
// Filters for property values. // Filters for property values.
filters?: [...#AzureTracesFilter] filters?: [...#AzureTracesFilter]
// KQL query to be executed. // KQL query to be executed.
query?: string query?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#AzureTracesFilter: { #AzureTracesFilter: {
// Property name, auto-populated based on available traces. // Property name, auto-populated based on available traces.
property: string property: string
// Comparison operator to use. Either equals or not equals. // Comparison operator to use. Either equals or not equals.
operation: string operation: string
// Values to filter by. // Values to filter by.
filters: [...string] filters: [...string]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#ResultFormat: "table" | "time_series" | "trace" @cuetsy(kind="enum", memberNames="Table|TimeSeries|Trace") #ResultFormat: "table" | "time_series" | "trace" @cuetsy(kind="enum", memberNames="Table|TimeSeries|Trace")
#AzureResourceGraphQuery: { #AzureResourceGraphQuery: {
// Azure Resource Graph KQL query to be executed. // Azure Resource Graph KQL query to be executed.
query?: string query?: string
// Specifies the format results should be returned as. Defaults to table. // Specifies the format results should be returned as. Defaults to table.
resultFormat?: string resultFormat?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#AzureMonitorResource: { #AzureMonitorResource: {
subscription?: string subscription?: string
resourceGroup?: string resourceGroup?: string
resourceName?: string resourceName?: string
metricNamespace?: string metricNamespace?: string
region?: string region?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#AzureMetricDimension: { #AzureMetricDimension: {
// Name of Dimension to be filtered on. // Name of Dimension to be filtered on.
dimension?: string dimension?: string
// String denoting the filter operation. Supports 'eq' - equals,'ne' - not equals, 'sw' - starts with. Note that some dimensions may not support all operators. // String denoting the filter operation. Supports 'eq' - equals,'ne' - not equals, 'sw' - starts with. Note that some dimensions may not support all operators.
operator?: string operator?: string
// Values to match with the filter. // Values to match with the filter.
filters?: [...string] filters?: [...string]
// @deprecated filter is deprecated in favour of filters to support multiselect. // @deprecated filter is deprecated in favour of filters to support multiselect.
filter?: string filter?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#GrafanaTemplateVariableQueryType: "AppInsightsMetricNameQuery" | "AppInsightsGroupByQuery" | "SubscriptionsQuery" | "ResourceGroupsQuery" | "ResourceNamesQuery" | "MetricNamespaceQuery" | "MetricNamesQuery" | "WorkspacesQuery" | "UnknownQuery" @cuetsy(kind="type") #GrafanaTemplateVariableQueryType: "AppInsightsMetricNameQuery" | "AppInsightsGroupByQuery" | "SubscriptionsQuery" | "ResourceGroupsQuery" | "ResourceNamesQuery" | "MetricNamespaceQuery" | "MetricNamesQuery" | "WorkspacesQuery" | "UnknownQuery" @cuetsy(kind="type")
#BaseGrafanaTemplateVariableQuery: { #BaseGrafanaTemplateVariableQuery: {
rawQuery?: string rawQuery?: string
... ...
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#UnknownQuery: #BaseGrafanaTemplateVariableQuery & { #UnknownQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "UnknownQuery" kind: "UnknownQuery"
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#AppInsightsMetricNameQuery: #BaseGrafanaTemplateVariableQuery & { #AppInsightsMetricNameQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "AppInsightsMetricNameQuery" kind: "AppInsightsMetricNameQuery"
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#AppInsightsGroupByQuery: #BaseGrafanaTemplateVariableQuery & { #AppInsightsGroupByQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "AppInsightsGroupByQuery" kind: "AppInsightsGroupByQuery"
metricName: string metricName: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#SubscriptionsQuery: #BaseGrafanaTemplateVariableQuery & { #SubscriptionsQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "SubscriptionsQuery" kind: "SubscriptionsQuery"
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#ResourceGroupsQuery: #BaseGrafanaTemplateVariableQuery & { #ResourceGroupsQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "ResourceGroupsQuery" kind: "ResourceGroupsQuery"
subscription: string subscription: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#ResourceNamesQuery: #BaseGrafanaTemplateVariableQuery & { #ResourceNamesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "ResourceNamesQuery" kind: "ResourceNamesQuery"
subscription: string subscription: string
resourceGroup: string resourceGroup: string
metricNamespace: string metricNamespace: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MetricNamespaceQuery: #BaseGrafanaTemplateVariableQuery & { #MetricNamespaceQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricNamespaceQuery" kind: "MetricNamespaceQuery"
subscription: string
resourceGroup: string
metricNamespace?: string
resourceName?: string
} @cuetsy(kind="interface")
// @deprecated Use MetricNamespaceQuery instead
#MetricDefinitionsQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricDefinitionsQuery"
subscription: string subscription: string
resourceGroup: string resourceGroup: string
metricNamespace?: string metricNamespace?: string
resourceName?: string resourceName?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MetricNamesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricNamesQuery"
subscription: string
resourceGroup: string
resourceName: string
metricNamespace: string
} @cuetsy(kind="interface")
#WorkspacesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "WorkspacesQuery"
subscription: string
} @cuetsy(kind="interface")
// @deprecated Use MetricNamespaceQuery instead #GrafanaTemplateVariableQuery: #AppInsightsMetricNameQuery | #AppInsightsGroupByQuery | #SubscriptionsQuery | #ResourceGroupsQuery | #ResourceNamesQuery | #MetricNamespaceQuery | #MetricDefinitionsQuery | #MetricNamesQuery | #WorkspacesQuery | #UnknownQuery @cuetsy(kind="type")
#MetricDefinitionsQuery: #BaseGrafanaTemplateVariableQuery & { }
kind: "MetricDefinitionsQuery" }]
subscription: string lenses: []
resourceGroup: string
metricNamespace?: string
resourceName?: string
} @cuetsy(kind="interface")
#MetricNamesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricNamesQuery"
subscription: string
resourceGroup: string
resourceName: string
metricNamespace: string
} @cuetsy(kind="interface")
#WorkspacesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "WorkspacesQuery"
subscription: string
} @cuetsy(kind="interface")
#GrafanaTemplateVariableQuery: #AppInsightsMetricNameQuery | #AppInsightsGroupByQuery | #SubscriptionsQuery | #ResourceGroupsQuery | #ResourceNamesQuery | #MetricNamespaceQuery | #MetricDefinitionsQuery | #MetricNamesQuery | #WorkspacesQuery | #UnknownQuery @cuetsy(kind="type")
},
]
},
]
} }
} }

View File

@@ -25,173 +25,170 @@ composableKinds: DataQuery: {
maturity: "merged" maturity: "merged"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ #CloudMonitoringQuery: common.DataQuery & {
#CloudMonitoringQuery: common.DataQuery & { // Aliases can be set to modify the legend labels. e.g. {{metric.label.xxx}}. See docs for more detail.
// Aliases can be set to modify the legend labels. e.g. {{metric.label.xxx}}. See docs for more detail. aliasBy?: string
aliasBy?: string // GCM query type.
// GCM query type. // queryType: #QueryType
// queryType: #QueryType // Time Series List sub-query properties.
// Time Series List sub-query properties. timeSeriesList?: #TimeSeriesList | #AnnotationQuery
timeSeriesList?: #TimeSeriesList | #AnnotationQuery // Time Series sub-query properties.
// Time Series sub-query properties. timeSeriesQuery?: #TimeSeriesQuery
timeSeriesQuery?: #TimeSeriesQuery // SLO sub-query properties.
// SLO sub-query properties. sloQuery?: #SLOQuery
sloQuery?: #SLOQuery // Time interval in milliseconds.
// Time interval in milliseconds. intervalMs?: number
intervalMs?: number } @cuetsy(kind="interface")
} @cuetsy(kind="interface")
// Defines the supported queryTypes. // Defines the supported queryTypes.
#QueryType: "timeSeriesList" | "timeSeriesQuery" | "slo" | "annotation" @cuetsy(kind="enum", memberNames="TIME_SERIES_LIST|TIME_SERIES_QUERY|SLO|ANNOTATION") #QueryType: "timeSeriesList" | "timeSeriesQuery" | "slo" | "annotation" @cuetsy(kind="enum", memberNames="TIME_SERIES_LIST|TIME_SERIES_QUERY|SLO|ANNOTATION")
// Time Series List sub-query properties. // Time Series List sub-query properties.
#TimeSeriesList: { #TimeSeriesList: {
// GCP project to execute the query against. // GCP project to execute the query against.
projectName: string projectName: string
// Reducer applied across a set of time-series values. Defaults to REDUCE_NONE. // Reducer applied across a set of time-series values. Defaults to REDUCE_NONE.
crossSeriesReducer: string crossSeriesReducer: string
// Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto. // Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto.
alignmentPeriod?: string alignmentPeriod?: string
// Alignment function to be used. Defaults to ALIGN_MEAN. // Alignment function to be used. Defaults to ALIGN_MEAN.
perSeriesAligner?: string perSeriesAligner?: string
// Array of labels to group data by. // Array of labels to group data by.
groupBys?: [...string] groupBys?: [...string]
// Array of filters to query data by. Labels that can be filtered on are defined by the metric. // Array of filters to query data by. Labels that can be filtered on are defined by the metric.
filters?: [...string] filters?: [...string]
// Data view, defaults to FULL. // Data view, defaults to FULL.
view?: string view?: string
// Only present if a preprocessor is selected. Reducer applied across a set of time-series values. Defaults to REDUCE_NONE. // Only present if a preprocessor is selected. Reducer applied across a set of time-series values. Defaults to REDUCE_NONE.
secondaryCrossSeriesReducer?: string secondaryCrossSeriesReducer?: string
// Only present if a preprocessor is selected. Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto. // Only present if a preprocessor is selected. Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto.
secondaryAlignmentPeriod?: string secondaryAlignmentPeriod?: string
// Only present if a preprocessor is selected. Alignment function to be used. Defaults to ALIGN_MEAN. // Only present if a preprocessor is selected. Alignment function to be used. Defaults to ALIGN_MEAN.
secondaryPerSeriesAligner?: string secondaryPerSeriesAligner?: string
// Only present if a preprocessor is selected. Array of labels to group data by. // Only present if a preprocessor is selected. Array of labels to group data by.
secondaryGroupBys?: [...string] secondaryGroupBys?: [...string]
// Preprocessor is not part of the API, but is used to store the preprocessor and not affect the UI for the rest of parameters // Preprocessor is not part of the API, but is used to store the preprocessor and not affect the UI for the rest of parameters
preprocessor?: #PreprocessorType preprocessor?: #PreprocessorType
... ...
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Types of pre-processor available. Defined by the metric. // Types of pre-processor available. Defined by the metric.
#PreprocessorType: "none" | "rate" | "delta" @cuetsy(kind="enum") #PreprocessorType: "none" | "rate" | "delta" @cuetsy(kind="enum")
// Annotation sub-query properties. // Annotation sub-query properties.
#AnnotationQuery: #TimeSeriesList & { #AnnotationQuery: #TimeSeriesList & {
// Annotation title. // Annotation title.
title?: string title?: string
// Annotation text. // Annotation text.
text?: string text?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Time Series sub-query properties. // Time Series sub-query properties.
#TimeSeriesQuery: { #TimeSeriesQuery: {
// GCP project to execute the query against. // GCP project to execute the query against.
projectName: string projectName: string
// MQL query to be executed. // MQL query to be executed.
query: string query: string
// To disable the graphPeriod, it should explictly be set to 'disabled'. // To disable the graphPeriod, it should explictly be set to 'disabled'.
graphPeriod?: "disabled" | string graphPeriod?: "disabled" | string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// SLO sub-query properties. // SLO sub-query properties.
#SLOQuery: { #SLOQuery: {
// GCP project to execute the query against. // GCP project to execute the query against.
projectName: string projectName: string
// Alignment function to be used. Defaults to ALIGN_MEAN. // Alignment function to be used. Defaults to ALIGN_MEAN.
perSeriesAligner?: string perSeriesAligner?: string
// Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto. // Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto.
alignmentPeriod?: string alignmentPeriod?: string
// SLO selector. // SLO selector.
selectorName: string selectorName: string
// ID for the service the SLO is in. // ID for the service the SLO is in.
serviceId: string serviceId: string
// Name for the service the SLO is in. // Name for the service the SLO is in.
serviceName: string serviceName: string
// ID for the SLO. // ID for the SLO.
sloId: string sloId: string
// Name of the SLO. // Name of the SLO.
sloName: string sloName: string
// SLO goal value. // SLO goal value.
goal?: number goal?: number
// Specific lookback period for the SLO. // Specific lookback period for the SLO.
lookbackPeriod?: string lookbackPeriod?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// @deprecated This type is for migration purposes only. Replaced by TimeSeriesList Metric sub-query properties. // @deprecated This type is for migration purposes only. Replaced by TimeSeriesList Metric sub-query properties.
#MetricQuery: { #MetricQuery: {
// GCP project to execute the query against. // GCP project to execute the query against.
projectName: string projectName: string
// Alignment function to be used. Defaults to ALIGN_MEAN. // Alignment function to be used. Defaults to ALIGN_MEAN.
perSeriesAligner?: string perSeriesAligner?: string
// Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto. // Alignment period to use when regularizing data. Defaults to cloud-monitoring-auto.
alignmentPeriod?: string alignmentPeriod?: string
// Aliases can be set to modify the legend labels. e.g. {{metric.label.xxx}}. See docs for more detail. // Aliases can be set to modify the legend labels. e.g. {{metric.label.xxx}}. See docs for more detail.
aliasBy?: string aliasBy?: string
editorMode: string editorMode: string
metricType: string metricType: string
// Reducer applied across a set of time-series values. Defaults to REDUCE_NONE. // Reducer applied across a set of time-series values. Defaults to REDUCE_NONE.
crossSeriesReducer: string crossSeriesReducer: string
// Array of labels to group data by. // Array of labels to group data by.
groupBys?: [...string] groupBys?: [...string]
// Array of filters to query data by. Labels that can be filtered on are defined by the metric. // Array of filters to query data by. Labels that can be filtered on are defined by the metric.
filters?: [...string] filters?: [...string]
metricKind?: #MetricKind metricKind?: #MetricKind
valueType?: string valueType?: string
view?: string view?: string
// MQL query to be executed. // MQL query to be executed.
query: string query: string
// Preprocessor is not part of the API, but is used to store the preprocessor and not affect the UI for the rest of parameters // Preprocessor is not part of the API, but is used to store the preprocessor and not affect the UI for the rest of parameters
preprocessor?: #PreprocessorType preprocessor?: #PreprocessorType
// To disable the graphPeriod, it should explictly be set to 'disabled'. // To disable the graphPeriod, it should explictly be set to 'disabled'.
graphPeriod?: "disabled" | string graphPeriod?: "disabled" | string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MetricKind: "METRIC_KIND_UNSPECIFIED" | "GAUGE" | "DELTA" | "CUMULATIVE" @cuetsy(kind="enum") #MetricKind: "METRIC_KIND_UNSPECIFIED" | "GAUGE" | "DELTA" | "CUMULATIVE" @cuetsy(kind="enum")
#ValueTypes: "VALUE_TYPE_UNSPECIFIED" | "BOOL" | "INT64" | "DOUBLE" | "STRING" | "DISTRIBUTION" | "MONEY" @cuetsy(kind="enum") #ValueTypes: "VALUE_TYPE_UNSPECIFIED" | "BOOL" | "INT64" | "DOUBLE" | "STRING" | "DISTRIBUTION" | "MONEY" @cuetsy(kind="enum")
#AlignmentTypes: "ALIGN_DELTA" | "ALIGN_RATE" | "ALIGN_INTERPOLATE" | "ALIGN_NEXT_OLDER" | "ALIGN_MIN" | "ALIGN_MAX" | "ALIGN_MEAN" | "ALIGN_COUNT" | "ALIGN_SUM" | "ALIGN_STDDEV" | "ALIGN_COUNT_TRUE" | "ALIGN_COUNT_FALSE" | "ALIGN_FRACTION_TRUE" | "ALIGN_PERCENTILE_99" | "ALIGN_PERCENTILE_95" | "ALIGN_PERCENTILE_50" | "ALIGN_PERCENTILE_05" | "ALIGN_PERCENT_CHANGE" | "ALIGN_NONE" @cuetsy(kind="enum") #AlignmentTypes: "ALIGN_DELTA" | "ALIGN_RATE" | "ALIGN_INTERPOLATE" | "ALIGN_NEXT_OLDER" | "ALIGN_MIN" | "ALIGN_MAX" | "ALIGN_MEAN" | "ALIGN_COUNT" | "ALIGN_SUM" | "ALIGN_STDDEV" | "ALIGN_COUNT_TRUE" | "ALIGN_COUNT_FALSE" | "ALIGN_FRACTION_TRUE" | "ALIGN_PERCENTILE_99" | "ALIGN_PERCENTILE_95" | "ALIGN_PERCENTILE_50" | "ALIGN_PERCENTILE_05" | "ALIGN_PERCENT_CHANGE" | "ALIGN_NONE" @cuetsy(kind="enum")
// @deprecated Use AnnotationQuery instead. Legacy annotation query properties for migration purposes. // @deprecated Use AnnotationQuery instead. Legacy annotation query properties for migration purposes.
#LegacyCloudMonitoringAnnotationQuery: { #LegacyCloudMonitoringAnnotationQuery: {
// GCP project to execute the query against. // GCP project to execute the query against.
projectName: string projectName: string
metricType: string metricType: string
// Query refId. // Query refId.
refId: string refId: string
// Array of filters to query data by. Labels that can be filtered on are defined by the metric. // Array of filters to query data by. Labels that can be filtered on are defined by the metric.
filters: [...string] filters: [...string]
metricKind: #MetricKind metricKind: #MetricKind
valueType: string valueType: string
// Annotation title. // Annotation title.
title: string title: string
// Annotation text. // Annotation text.
text: string text: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Query filter representation. // Query filter representation.
#Filter: { #Filter: {
// Filter key. // Filter key.
key: string key: string
// Filter operator. // Filter operator.
operator: string operator: string
// Filter value. // Filter value.
value: string value: string
// Filter condition. // Filter condition.
condition?: string condition?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MetricFindQueryTypes: "projects" | "services" | "defaultProject" | "metricTypes" | "labelKeys" | "labelValues" | "resourceTypes" | "aggregations" | "aligners" | "alignmentPeriods" | "selectors" | "sloServices" | "slo" @cuetsy(kind="enum", memberNames="Projects|Services|DefaultProject|MetricTypes|LabelKeys|LabelValues|ResourceTypes|Aggregations|Aligners|AlignmentPeriods|Selectors|SLOServices|SLO") #MetricFindQueryTypes: "projects" | "services" | "defaultProject" | "metricTypes" | "labelKeys" | "labelValues" | "resourceTypes" | "aggregations" | "aligners" | "alignmentPeriods" | "selectors" | "sloServices" | "slo" @cuetsy(kind="enum", memberNames="Projects|Services|DefaultProject|MetricTypes|LabelKeys|LabelValues|ResourceTypes|Aggregations|Aligners|AlignmentPeriods|Selectors|SLOServices|SLO")
}, }
}]
] lenses: []
},
]
} }
} }

View File

@@ -26,189 +26,187 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ #MetricStat: {
#MetricStat: { // AWS region to query for the metric
// AWS region to query for the metric region: string
region: string // A namespace is a container for CloudWatch metrics. Metrics in different namespaces are isolated from each other, so that metrics from different applications are not mistakenly aggregated into the same statistics. For example, Amazon EC2 uses the AWS/EC2 namespace.
// A namespace is a container for CloudWatch metrics. Metrics in different namespaces are isolated from each other, so that metrics from different applications are not mistakenly aggregated into the same statistics. For example, Amazon EC2 uses the AWS/EC2 namespace. namespace: string
namespace: string // Name of the metric
// Name of the metric metricName?: string
metricName?: string // The dimensions of the metric
// The dimensions of the metric dimensions?: #Dimensions
dimensions?: #Dimensions // Only show metrics that exactly match all defined dimension names.
// Only show metrics that exactly match all defined dimension names. matchExact?: bool
matchExact?: bool // The length of time associated with a specific Amazon CloudWatch statistic. Can be specified by a number of seconds, 'auto', or as a duration string e.g. '15m' being 15 minutes
// The length of time associated with a specific Amazon CloudWatch statistic. Can be specified by a number of seconds, 'auto', or as a duration string e.g. '15m' being 15 minutes period?: string
period?: string // The ID of the AWS account to query for the metric, specifying `all` will query all accounts that the monitoring account is permitted to query.
// The ID of the AWS account to query for the metric, specifying `all` will query all accounts that the monitoring account is permitted to query. accountId?: string
accountId?: string // Metric data aggregations over specified periods of time. For detailed definitions of the statistics supported by CloudWatch, see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.
// Metric data aggregations over specified periods of time. For detailed definitions of the statistics supported by CloudWatch, see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html. statistic?: string
statistic?: string // @deprecated use statistic
// @deprecated use statistic statistics?: [...string]
statistics?: [...string] } @cuetsy(kind="interface")
} @cuetsy(kind="interface")
// A name/value pair that is part of the identity of a metric. For example, you can get statistics for a specific EC2 instance by specifying the InstanceId dimension when you search for metrics. // A name/value pair that is part of the identity of a metric. For example, you can get statistics for a specific EC2 instance by specifying the InstanceId dimension when you search for metrics.
#Dimensions: {[string]: string | [...string]} @cuetsy(kind="type") #Dimensions: {[string]: string | [...string]} @cuetsy(kind="type")
// Shape of a CloudWatch Metrics query // Shape of a CloudWatch Metrics query
#CloudWatchMetricsQuery: { #CloudWatchMetricsQuery: {
common.DataQuery common.DataQuery
#MetricStat #MetricStat
// Whether a query is a Metrics, Logs, or Annotations query // Whether a query is a Metrics, Logs, or Annotations query
queryMode?: #CloudWatchQueryMode queryMode?: #CloudWatchQueryMode
// Whether to use a metric search or metric query. Metric query is referred to as "Metrics Insights" in the AWS console. // Whether to use a metric search or metric query. Metric query is referred to as "Metrics Insights" in the AWS console.
metricQueryType?: #MetricQueryType metricQueryType?: #MetricQueryType
// Whether to use the query builder or code editor to create the query // Whether to use the query builder or code editor to create the query
metricEditorMode?: #MetricEditorMode metricEditorMode?: #MetricEditorMode
// ID can be used to reference other queries in math expressions. The ID can include numbers, letters, and underscore, and must start with a lowercase letter. // ID can be used to reference other queries in math expressions. The ID can include numbers, letters, and underscore, and must start with a lowercase letter.
id: string id: string
// Deprecated: use label // Deprecated: use label
// @deprecated use label // @deprecated use label
alias?: string alias?: string
// Change the time series legend names using dynamic labels. See https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html for more details. // Change the time series legend names using dynamic labels. See https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html for more details.
label?: string label?: string
// Math expression query // Math expression query
expression?: string expression?: string
// When the metric query type is `metricQueryType` is set to `Query`, this field is used to specify the query string. // When the metric query type is `metricQueryType` is set to `Query`, this field is used to specify the query string.
sqlExpression?: string sqlExpression?: string
// When the metric query type is `metricQueryType` is set to `Query` and the `metricEditorMode` is set to `Builder`, this field is used to build up an object representation of a SQL query. // When the metric query type is `metricQueryType` is set to `Query` and the `metricEditorMode` is set to `Builder`, this field is used to build up an object representation of a SQL query.
sql?: #SQLExpression sql?: #SQLExpression
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#CloudWatchQueryMode: "Metrics" | "Logs" | "Annotations" @cuetsy(kind="type") #CloudWatchQueryMode: "Metrics" | "Logs" | "Annotations" @cuetsy(kind="type")
#MetricQueryType: 0 | 1 @cuetsy(kind="enum", memberNames="Search|Query") #MetricQueryType: 0 | 1 @cuetsy(kind="enum", memberNames="Search|Query")
#MetricEditorMode: 0 | 1 @cuetsy(kind="enum", memberNames="Builder|Code") #MetricEditorMode: 0 | 1 @cuetsy(kind="enum", memberNames="Builder|Code")
#SQLExpression: { #SQLExpression: {
// SELECT part of the SQL expression // SELECT part of the SQL expression
select?: #QueryEditorFunctionExpression select?: #QueryEditorFunctionExpression
// FROM part of the SQL expression // FROM part of the SQL expression
from?: #QueryEditorPropertyExpression | #QueryEditorFunctionExpression from?: #QueryEditorPropertyExpression | #QueryEditorFunctionExpression
// WHERE part of the SQL expression // WHERE part of the SQL expression
where?: #QueryEditorArrayExpression where?: #QueryEditorArrayExpression
// GROUP BY part of the SQL expression // GROUP BY part of the SQL expression
groupBy?: #QueryEditorArrayExpression groupBy?: #QueryEditorArrayExpression
// ORDER BY part of the SQL expression // ORDER BY part of the SQL expression
orderBy?: #QueryEditorFunctionExpression orderBy?: #QueryEditorFunctionExpression
// The sort order of the SQL expression, `ASC` or `DESC` // The sort order of the SQL expression, `ASC` or `DESC`
orderByDirection?: string orderByDirection?: string
// LIMIT part of the SQL expression // LIMIT part of the SQL expression
limit?: int64 limit?: int64
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorFunctionExpression: { #QueryEditorFunctionExpression: {
type: #QueryEditorExpressionType & "function" type: #QueryEditorExpressionType & "function"
name?: string name?: string
parameters?: [...#QueryEditorFunctionParameterExpression] parameters?: [...#QueryEditorFunctionParameterExpression]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorExpressionType: "property" | "operator" | "or" | "and" | "groupBy" | "function" | "functionParameter" @cuetsy(kind="enum") #QueryEditorExpressionType: "property" | "operator" | "or" | "and" | "groupBy" | "function" | "functionParameter" @cuetsy(kind="enum")
#QueryEditorFunctionParameterExpression: { #QueryEditorFunctionParameterExpression: {
type: #QueryEditorExpressionType & "functionParameter" type: #QueryEditorExpressionType & "functionParameter"
name?: string name?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorPropertyExpression: { #QueryEditorPropertyExpression: {
type: #QueryEditorExpressionType & "property" type: #QueryEditorExpressionType & "property"
property: #QueryEditorProperty property: #QueryEditorProperty
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorGroupByExpression: { #QueryEditorGroupByExpression: {
type: #QueryEditorExpressionType & "groupBy" type: #QueryEditorExpressionType & "groupBy"
property: #QueryEditorProperty property: #QueryEditorProperty
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorOperatorExpression: { #QueryEditorOperatorExpression: {
type: #QueryEditorExpressionType & "operator" type: #QueryEditorExpressionType & "operator"
property: #QueryEditorProperty property: #QueryEditorProperty
// TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer // TS type is operator: QueryEditorOperator<QueryEditorOperatorValueType>, extended in veneer
operator: #QueryEditorOperator operator: #QueryEditorOperator
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// TS type is QueryEditorOperator<T extends QueryEditorOperatorValueType>, extended in veneer // TS type is QueryEditorOperator<T extends QueryEditorOperatorValueType>, extended in veneer
#QueryEditorOperator: { #QueryEditorOperator: {
name?: string name?: string
value?: #QueryEditorOperatorType | [...#QueryEditorOperatorType] value?: #QueryEditorOperatorType | [...#QueryEditorOperatorType]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorOperatorValueType: #QueryEditorOperatorType | [...#QueryEditorOperatorType] @cuetsy(kind="type") #QueryEditorOperatorValueType: #QueryEditorOperatorType | [...#QueryEditorOperatorType] @cuetsy(kind="type")
#QueryEditorOperatorType: string | bool | int64 @cuetsy(kind="type") #QueryEditorOperatorType: string | bool | int64 @cuetsy(kind="type")
#QueryEditorProperty: { #QueryEditorProperty: {
type: #QueryEditorPropertyType type: #QueryEditorPropertyType
name?: string name?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorPropertyType: "string" @cuetsy(kind="enum") #QueryEditorPropertyType: "string" @cuetsy(kind="enum")
#QueryEditorArrayExpression: { #QueryEditorArrayExpression: {
type: (#QueryEditorExpressionType & "and") | (#QueryEditorExpressionType & "or") type: (#QueryEditorExpressionType & "and") | (#QueryEditorExpressionType & "or")
expressions: [...#QueryEditorExpression] | [...#QueryEditorArrayExpression] expressions: [...#QueryEditorExpression] | [...#QueryEditorArrayExpression]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#QueryEditorExpression: #QueryEditorArrayExpression | #QueryEditorPropertyExpression | #QueryEditorGroupByExpression | #QueryEditorFunctionExpression | #QueryEditorFunctionParameterExpression | #QueryEditorOperatorExpression @cuetsy(kind="type") #QueryEditorExpression: #QueryEditorArrayExpression | #QueryEditorPropertyExpression | #QueryEditorGroupByExpression | #QueryEditorFunctionExpression | #QueryEditorFunctionParameterExpression | #QueryEditorOperatorExpression @cuetsy(kind="type")
// Shape of a CloudWatch Logs query // Shape of a CloudWatch Logs query
#CloudWatchLogsQuery: { #CloudWatchLogsQuery: {
common.DataQuery common.DataQuery
// Whether a query is a Metrics, Logs, or Annotations query // Whether a query is a Metrics, Logs, or Annotations query
queryMode: #CloudWatchQueryMode queryMode: #CloudWatchQueryMode
id: string id: string
// AWS region to query for the logs // AWS region to query for the logs
region: string region: string
// The CloudWatch Logs Insights query to execute // The CloudWatch Logs Insights query to execute
expression?: string expression?: string
// Fields to group the results by, this field is automatically populated whenever the query is updated // Fields to group the results by, this field is automatically populated whenever the query is updated
statsGroups?: [...string] statsGroups?: [...string]
// Log groups to query // Log groups to query
logGroups?: [...#LogGroup] logGroups?: [...#LogGroup]
// @deprecated use logGroups // @deprecated use logGroups
logGroupNames?: [...string] logGroupNames?: [...string]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#LogGroup: { #LogGroup: {
// ARN of the log group // ARN of the log group
arn: string arn: string
// Name of the log group // Name of the log group
name: string name: string
// AccountId of the log group // AccountId of the log group
accountId?: string accountId?: string
// Label of the log group // Label of the log group
accountLabel?: string accountLabel?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#CloudWatchQueryMode: "Metrics" | "Logs" | "Annotations" @cuetsy(kind="type") #CloudWatchQueryMode: "Metrics" | "Logs" | "Annotations" @cuetsy(kind="type")
// Shape of a CloudWatch Annotation query // Shape of a CloudWatch Annotation query
#CloudWatchAnnotationQuery: { #CloudWatchAnnotationQuery: {
common.DataQuery common.DataQuery
#MetricStat #MetricStat
// Whether a query is a Metrics, Logs, or Annotations query // Whether a query is a Metrics, Logs, or Annotations query
queryMode: #CloudWatchQueryMode queryMode: #CloudWatchQueryMode
// Enable matching on the prefix of the action name or alarm name, specify the prefixes with actionPrefix and/or alarmNamePrefix // Enable matching on the prefix of the action name or alarm name, specify the prefixes with actionPrefix and/or alarmNamePrefix
prefixMatching?: bool prefixMatching?: bool
// Use this parameter to filter the results of the operation to only those alarms // Use this parameter to filter the results of the operation to only those alarms
// that use a certain alarm action. For example, you could specify the ARN of // that use a certain alarm action. For example, you could specify the ARN of
// an SNS topic to find all alarms that send notifications to that topic. // an SNS topic to find all alarms that send notifications to that topic.
// e.g. `arn:aws:sns:us-east-1:123456789012:my-app-` would match `arn:aws:sns:us-east-1:123456789012:my-app-action` // e.g. `arn:aws:sns:us-east-1:123456789012:my-app-` would match `arn:aws:sns:us-east-1:123456789012:my-app-action`
// but not match `arn:aws:sns:us-east-1:123456789012:your-app-action` // but not match `arn:aws:sns:us-east-1:123456789012:your-app-action`
actionPrefix?: string actionPrefix?: string
// An alarm name prefix. If you specify this parameter, you receive information // An alarm name prefix. If you specify this parameter, you receive information
// about all alarms that have names that start with this prefix. // about all alarms that have names that start with this prefix.
// e.g. `my-team-service-` would match `my-team-service-high-cpu` but not match `your-team-service-high-cpu` // e.g. `my-team-service-` would match `my-team-service-high-cpu` but not match `your-team-service-high-cpu`
alarmNamePrefix?: string alarmNamePrefix?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// TS type is CloudWatchDefaultQuery = Omit<CloudWatchLogsQuery, 'queryMode'> & CloudWatchMetricsQuery, declared in veneer // TS type is CloudWatchDefaultQuery = Omit<CloudWatchLogsQuery, 'queryMode'> & CloudWatchMetricsQuery, declared in veneer
// #CloudWatchDefaultQuery: #CloudWatchLogsQuery & #CloudWatchMetricsQuery @cuetsy(kind="type") // #CloudWatchDefaultQuery: #CloudWatchLogsQuery & #CloudWatchMetricsQuery @cuetsy(kind="type")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -277,6 +277,10 @@ export interface LogGroup {
/** /**
* Shape of a CloudWatch Annotation query * Shape of a CloudWatch Annotation query
*/ */
/**
* TS type is CloudWatchDefaultQuery = Omit<CloudWatchLogsQuery, 'queryMode'> & CloudWatchMetricsQuery, declared in veneer
* #CloudWatchDefaultQuery: #CloudWatchLogsQuery & #CloudWatchMetricsQuery @cuetsy(kind="type")
*/
export interface CloudWatchAnnotationQuery extends common.DataQuery, MetricStat { export interface CloudWatchAnnotationQuery extends common.DataQuery, MetricStat {
/** /**
* Use this parameter to filter the results of the operation to only those alarms * Use this parameter to filter the results of the operation to only those alarms

View File

@@ -26,406 +26,384 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ common.DataQuery
common.DataQuery
// Alias pattern // Alias pattern
alias?: string alias?: string
// Lucene query // Lucene query
query?: string query?: string
// Name of time field // Name of time field
timeField?: string timeField?: string
// List of bucket aggregations // List of bucket aggregations
bucketAggs?: [...#BucketAggregation] bucketAggs?: [...#BucketAggregation]
// List of metric aggregations // List of metric aggregations
metrics?: [...#MetricAggregation] metrics?: [...#MetricAggregation]
#BucketAggregation: #DateHistogram | #Histogram | #Terms | #Filters | #GeoHashGrid | #Nested @cuetsy(kind="type") #BucketAggregation: #DateHistogram | #Histogram | #Terms | #Filters | #GeoHashGrid | #Nested @cuetsy(kind="type")
#MetricAggregation: #Count | #PipelineMetricAggregation | #MetricAggregationWithSettings @cuetsy(kind="type") #MetricAggregation: #Count | #PipelineMetricAggregation | #MetricAggregationWithSettings @cuetsy(kind="type")
#BucketAggregationType: "terms" | "filters" | "geohash_grid" | "date_histogram" | "histogram" | "nested" @cuetsy(kind="type") #BucketAggregationType: "terms" | "filters" | "geohash_grid" | "date_histogram" | "histogram" | "nested" @cuetsy(kind="type")
#BaseBucketAggregation: { #BaseBucketAggregation: {
id: string id: string
type: #BucketAggregationType type: #BucketAggregationType
settings?: _ settings?: _
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#BucketAggregationWithField: { #BucketAggregationWithField: {
#BaseBucketAggregation #BaseBucketAggregation
field?: string field?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#DateHistogram: { #DateHistogram: {
#BucketAggregationWithField #BucketAggregationWithField
type: #BucketAggregationType & "date_histogram" type: #BucketAggregationType & "date_histogram"
settings?: #DateHistogramSettings settings?: #DateHistogramSettings
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#DateHistogramSettings: { #DateHistogramSettings: {
interval?: string interval?: string
min_doc_count?: string min_doc_count?: string
trimEdges?: string trimEdges?: string
offset?: string offset?: string
timeZone?: string timeZone?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Histogram: { #Histogram: {
#BucketAggregationWithField #BucketAggregationWithField
type: #BucketAggregationType & "histogram" type: #BucketAggregationType & "histogram"
settings?: #HistogramSettings settings?: #HistogramSettings
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#HistogramSettings: { #HistogramSettings: {
interval?: string interval?: string
min_doc_count?: string min_doc_count?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#TermsOrder: "desc" | "asc" @cuetsy(kind="type") #TermsOrder: "desc" | "asc" @cuetsy(kind="type")
#Nested: { #Nested: {
#BucketAggregationWithField #BucketAggregationWithField
type: #BucketAggregationType & "nested" type: #BucketAggregationType & "nested"
settings?: {} settings?: {}
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Terms: { #Terms: {
#BucketAggregationWithField #BucketAggregationWithField
type: #BucketAggregationType & "terms" type: #BucketAggregationType & "terms"
settings?: #TermsSettings settings?: #TermsSettings
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#TermsSettings: { #TermsSettings: {
order?: #TermsOrder order?: #TermsOrder
size?: string size?: string
min_doc_count?: string min_doc_count?: string
orderBy?: string orderBy?: string
missing?: string missing?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Filters: { #Filters: {
#BaseBucketAggregation #BaseBucketAggregation
type: #BucketAggregationType & "filters" type: #BucketAggregationType & "filters"
settings?: #FiltersSettings settings?: #FiltersSettings
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Filter: { #Filter: {
query: string query: string
label: string label: string
} @cuetsy(kind="type") } @cuetsy(kind="type")
#FiltersSettings: { #FiltersSettings: {
filters?: [...#Filter] filters?: [...#Filter]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#GeoHashGrid: { #GeoHashGrid: {
#BucketAggregationWithField #BucketAggregationWithField
type: #BucketAggregationType & "geohash_grid" type: #BucketAggregationType & "geohash_grid"
settings?: #GeoHashGridSettings settings?: #GeoHashGridSettings
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#GeoHashGridSettings: { #GeoHashGridSettings: {
precision?: string precision?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#PipelineMetricAggregationType: "moving_avg" | "moving_fn" | "derivative" | "serial_diff" | "cumulative_sum" | "bucket_script" @cuetsy(kind="type") #PipelineMetricAggregationType: "moving_avg" | "moving_fn" | "derivative" | "serial_diff" | "cumulative_sum" | "bucket_script" @cuetsy(kind="type")
#MetricAggregationType: "count" | "avg" | "sum" | "min" | "max" | "extended_stats" | "percentiles" | "cardinality" | "raw_document" | "raw_data" | "logs" | "rate" | "top_metrics" | #PipelineMetricAggregationType @cuetsy(kind="type") #MetricAggregationType: "count" | "avg" | "sum" | "min" | "max" | "extended_stats" | "percentiles" | "cardinality" | "raw_document" | "raw_data" | "logs" | "rate" | "top_metrics" | #PipelineMetricAggregationType @cuetsy(kind="type")
#BaseMetricAggregation: { #BaseMetricAggregation: {
type: #MetricAggregationType type: #MetricAggregationType
id: string id: string
hide?: bool hide?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#PipelineVariable: { #PipelineVariable: {
name: string name: string
pipelineAgg: string pipelineAgg: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MetricAggregationWithField: { #MetricAggregationWithField: {
#BaseMetricAggregation #BaseMetricAggregation
field?: string field?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MetricAggregationWithMissingSupport: { #MetricAggregationWithMissingSupport: {
#BaseMetricAggregation #BaseMetricAggregation
settings?: { settings?: missing?: string
missing?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#InlineScript: string | {inline?: string} @cuetsy(kind="type") #InlineScript: string | {inline?: string} @cuetsy(kind="type")
#MetricAggregationWithInlineScript: { #MetricAggregationWithInlineScript: {
#BaseMetricAggregation #BaseMetricAggregation
settings?: { settings?: script?: #InlineScript
script?: #InlineScript } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#Count: { #Count: {
#BaseMetricAggregation #BaseMetricAggregation
type: #MetricAggregationType & "count" type: #MetricAggregationType & "count"
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Average: { #Average: {
#MetricAggregationWithField #MetricAggregationWithField
#MetricAggregationWithMissingSupport #MetricAggregationWithMissingSupport
#MetricAggregationWithInlineScript #MetricAggregationWithInlineScript
type: #MetricAggregationType & "avg" type: #MetricAggregationType & "avg"
settings?: { settings?: {
script?: #InlineScript script?: #InlineScript
missing?: string missing?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Sum: { #Sum: {
#MetricAggregationWithField #MetricAggregationWithField
#MetricAggregationWithInlineScript #MetricAggregationWithInlineScript
type: #MetricAggregationType & "sum" type: #MetricAggregationType & "sum"
settings?: { settings?: {
script?: #InlineScript script?: #InlineScript
missing?: string missing?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Max: { #Max: {
#MetricAggregationWithField #MetricAggregationWithField
#MetricAggregationWithInlineScript #MetricAggregationWithInlineScript
type: #MetricAggregationType & "max" type: #MetricAggregationType & "max"
settings?: { settings?: {
script?: #InlineScript script?: #InlineScript
missing?: string missing?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Min: { #Min: {
#MetricAggregationWithField #MetricAggregationWithField
#MetricAggregationWithInlineScript #MetricAggregationWithInlineScript
type: #MetricAggregationType & "min" type: #MetricAggregationType & "min"
settings?: { settings?: {
script?: #InlineScript script?: #InlineScript
missing?: string missing?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#ExtendedStatMetaType: "avg" | "min" | "max" | "sum" | "count" | "std_deviation" | "std_deviation_bounds_upper" | "std_deviation_bounds_lower" @cuetsy(kind="type") #ExtendedStatMetaType: "avg" | "min" | "max" | "sum" | "count" | "std_deviation" | "std_deviation_bounds_upper" | "std_deviation_bounds_lower" @cuetsy(kind="type")
#ExtendedStat: { #ExtendedStat: {
label: string label: string
value: #ExtendedStatMetaType value: #ExtendedStatMetaType
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#ExtendedStats: { #ExtendedStats: {
#MetricAggregationWithField #MetricAggregationWithField
#MetricAggregationWithInlineScript #MetricAggregationWithInlineScript
type: #MetricAggregationType & "extended_stats" type: #MetricAggregationType & "extended_stats"
settings?: { settings?: {
script?: #InlineScript script?: #InlineScript
missing?: string missing?: string
sigma?: string sigma?: string
} }
meta?: [#ExtendedStatMetaType]: bool meta?: [#ExtendedStatMetaType]: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Percentiles: { #Percentiles: {
#MetricAggregationWithField #MetricAggregationWithField
#MetricAggregationWithInlineScript #MetricAggregationWithInlineScript
type: #MetricAggregationType & "percentiles" type: #MetricAggregationType & "percentiles"
settings?: { settings?: {
script?: #InlineScript script?: #InlineScript
missing?: string missing?: string
percents?: [...string] percents?: [...string]
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#UniqueCount: { #UniqueCount: {
#MetricAggregationWithField #MetricAggregationWithField
type: #MetricAggregationType & "cardinality" type: #MetricAggregationType & "cardinality"
settings?: { settings?: {
precision_threshold?: string precision_threshold?: string
missing?: string missing?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#RawDocument: { #RawDocument: {
#BaseMetricAggregation #BaseMetricAggregation
type: #MetricAggregationType & "raw_document" type: #MetricAggregationType & "raw_document"
settings?: { settings?: size?: string
size?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#RawData: { #RawData: {
#BaseMetricAggregation #BaseMetricAggregation
type: #MetricAggregationType & "raw_data" type: #MetricAggregationType & "raw_data"
settings?: { settings?: size?: string
size?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#Logs: { #Logs: {
#BaseMetricAggregation #BaseMetricAggregation
type: #MetricAggregationType & "logs" type: #MetricAggregationType & "logs"
settings?: { settings?: limit?: string
limit?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#Rate: { #Rate: {
#MetricAggregationWithField #MetricAggregationWithField
type: #MetricAggregationType & "rate" type: #MetricAggregationType & "rate"
settings?: { settings?: {
unit?: string unit?: string
mode?: string mode?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#BasePipelineMetricAggregation: { #BasePipelineMetricAggregation: {
#MetricAggregationWithField #MetricAggregationWithField
pipelineAgg?: string pipelineAgg?: string
type: #PipelineMetricAggregationType type: #PipelineMetricAggregationType
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#PipelineMetricAggregationWithMultipleBucketPaths: { #PipelineMetricAggregationWithMultipleBucketPaths: {
#BaseMetricAggregation #BaseMetricAggregation
pipelineVariables?: [...#PipelineVariable] pipelineVariables?: [...#PipelineVariable]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MovingAverageModel: "simple" | "linear" | "ewma" | "holt" | "holt_winters" @cuetsy(kind="type") #MovingAverageModel: "simple" | "linear" | "ewma" | "holt" | "holt_winters" @cuetsy(kind="type")
#MovingAverageModelOption: { #MovingAverageModelOption: {
label: string label: string
value: #MovingAverageModel value: #MovingAverageModel
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#BaseMovingAverageModelSettings: { #BaseMovingAverageModelSettings: {
model: #MovingAverageModel model: #MovingAverageModel
window: string window: string
predict: string predict: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MovingAverageSimpleModelSettings: { #MovingAverageSimpleModelSettings: {
#BaseMovingAverageModelSettings #BaseMovingAverageModelSettings
model: #MovingAverageModel & "simple" model: #MovingAverageModel & "simple"
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MovingAverageLinearModelSettings: { #MovingAverageLinearModelSettings: {
#BaseMovingAverageModelSettings #BaseMovingAverageModelSettings
model: #MovingAverageModel & "linear" model: #MovingAverageModel & "linear"
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MovingAverageEWMAModelSettings: { #MovingAverageEWMAModelSettings: {
#BaseMovingAverageModelSettings #BaseMovingAverageModelSettings
model: #MovingAverageModel & "ewma" model: #MovingAverageModel & "ewma"
settings?: { settings?: alpha?: string
alpha?: string minimize: bool
} } @cuetsy(kind="interface")
minimize: bool
} @cuetsy(kind="interface")
#MovingAverageHoltModelSettings: { #MovingAverageHoltModelSettings: {
#BaseMovingAverageModelSettings #BaseMovingAverageModelSettings
model: #MovingAverageModel & "holt" model: #MovingAverageModel & "holt"
settings: { settings: {
alpha?: string alpha?: string
beta?: string beta?: string
} }
minimize: bool minimize: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MovingAverageHoltWintersModelSettings: { #MovingAverageHoltWintersModelSettings: {
#BaseMovingAverageModelSettings #BaseMovingAverageModelSettings
model: #MovingAverageModel & "holt_winters" model: #MovingAverageModel & "holt_winters"
settings: { settings: {
alpha?: string alpha?: string
beta?: string beta?: string
gamma?: string gamma?: string
period?: string period?: string
pad?: bool pad?: bool
} }
minimize: bool minimize: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// #MovingAverageModelSettings Not sure how to do this one: // #MovingAverageModelSettings Not sure how to do this one:
// export type MovingAverageModelSettings<T extends MovingAverageModel = MovingAverageModel> = Partial< // export type MovingAverageModelSettings<T extends MovingAverageModel = MovingAverageModel> = Partial<
// Extract< // Extract<
// | MovingAverageSimpleModelSettings // | MovingAverageSimpleModelSettings
// | MovingAverageLinearModelSettings // | MovingAverageLinearModelSettings
// | MovingAverageEWMAModelSettings // | MovingAverageEWMAModelSettings
// | MovingAverageHoltModelSettings // | MovingAverageHoltModelSettings
// | MovingAverageHoltWintersModelSettings, // | MovingAverageHoltWintersModelSettings,
// { model: T } // { model: T }
// > // >
// >; // >;
// #MovingAverage's settings are overridden in types.ts // #MovingAverage's settings are overridden in types.ts
#MovingAverage: { #MovingAverage: {
#BasePipelineMetricAggregation #BasePipelineMetricAggregation
type: #PipelineMetricAggregationType & "moving_avg" type: #PipelineMetricAggregationType & "moving_avg"
settings?: {...} settings?: {...}
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#MovingFunction: { #MovingFunction: {
#BasePipelineMetricAggregation #BasePipelineMetricAggregation
type: #PipelineMetricAggregationType & "moving_fn" type: #PipelineMetricAggregationType & "moving_fn"
settings?: { settings?: {
window?: string window?: string
script?: #InlineScript script?: #InlineScript
shift?: string shift?: string
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#Derivative: { #Derivative: {
#BasePipelineMetricAggregation #BasePipelineMetricAggregation
type: #PipelineMetricAggregationType & "derivative" type: #PipelineMetricAggregationType & "derivative"
settings?: { settings?: unit?: string
unit?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#SerialDiff: { #SerialDiff: {
#BasePipelineMetricAggregation #BasePipelineMetricAggregation
type: #PipelineMetricAggregationType & "serial_diff" type: #PipelineMetricAggregationType & "serial_diff"
settings?: { settings?: lag?: string
lag?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#CumulativeSum: { #CumulativeSum: {
#BasePipelineMetricAggregation #BasePipelineMetricAggregation
type: #PipelineMetricAggregationType & "cumulative_sum" type: #PipelineMetricAggregationType & "cumulative_sum"
settings?: { settings?: format?: string
format?: string } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#BucketScript: { #BucketScript: {
#PipelineMetricAggregationWithMultipleBucketPaths #PipelineMetricAggregationWithMultipleBucketPaths
type: #PipelineMetricAggregationType & "bucket_script" type: #PipelineMetricAggregationType & "bucket_script"
settings?: { settings?: script?: #InlineScript
script?: #InlineScript } @cuetsy(kind="interface")
}
} @cuetsy(kind="interface")
#TopMetrics: { #TopMetrics: {
#BaseMetricAggregation #BaseMetricAggregation
type: #MetricAggregationType & "top_metrics" type: #MetricAggregationType & "top_metrics"
settings?: { settings?: {
order?: string order?: string
orderBy?: string orderBy?: string
metrics?: [...string] metrics?: [...string]
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#PipelineMetricAggregation: #MovingAverage | #Derivative | #CumulativeSum | #BucketScript @cuetsy(kind="type") #PipelineMetricAggregation: #MovingAverage | #Derivative | #CumulativeSum | #BucketScript @cuetsy(kind="type")
#MetricAggregationWithSettings: #BucketScript | #CumulativeSum | #Derivative | #SerialDiff | #RawData | #RawDocument | #UniqueCount | #Percentiles | #ExtendedStats | #Min | #Max | #Sum | #Average | #MovingAverage | #MovingFunction | #Logs | #Rate | #TopMetrics @cuetsy(kind="type") #MetricAggregationWithSettings: #BucketScript | #CumulativeSum | #Derivative | #SerialDiff | #RawData | #RawDocument | #UniqueCount | #Percentiles | #ExtendedStats | #Min | #Max | #Sum | #Average | #MovingAverage | #MovingFunction | #Logs | #Rate | #TopMetrics @cuetsy(kind="type")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -26,36 +26,34 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ common.DataQuery
common.DataQuery
// The LogQL query. // The LogQL query.
expr: string expr: string
// Used to override the name of the series. // Used to override the name of the series.
legendFormat?: string legendFormat?: string
// Used to limit the number of log rows returned. // Used to limit the number of log rows returned.
maxLines?: int64 maxLines?: int64
// Used to scale the interval value. // Used to scale the interval value.
resolution?: int64 resolution?: int64
editorMode?: #QueryEditorMode editorMode?: #QueryEditorMode
// @deprecated, now use queryType. // @deprecated, now use queryType.
range?: bool range?: bool
// @deprecated, now use queryType. // @deprecated, now use queryType.
instant?: bool instant?: bool
#QueryEditorMode: "code" | "builder" @cuetsy(kind="enum") #QueryEditorMode: "code" | "builder" @cuetsy(kind="enum")
#LokiQueryType: "range" | "instant" | "stream" @cuetsy(kind="enum") #LokiQueryType: "range" | "instant" | "stream" @cuetsy(kind="enum")
#SupportingQueryType: "logsVolume" | "logsSample" | "dataSample" @cuetsy(kind="enum") #SupportingQueryType: "logsVolume" | "logsSample" | "dataSample" @cuetsy(kind="enum")
#LokiQueryDirection: "forward" | "backward" @cuetsy(kind="enum") #LokiQueryDirection: "forward" | "backward" @cuetsy(kind="enum")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -26,21 +26,20 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
version: [0, 0]
schema:
// v0.0
{ {
schemas: [ common.DataQuery
// v0.0
{
common.DataQuery
// Specifies the query label selectors. // Specifies the query label selectors.
labelSelector: string | *"{}" labelSelector: string | *"{}"
// Specifies the type of profile to query. // Specifies the type of profile to query.
profileTypeId: string profileTypeId: string
#ParcaQueryType: "metrics" | "profile" | *"both" @cuetsy(kind="type") #ParcaQueryType: "metrics" | "profile" | *"both" @cuetsy(kind="type")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -26,25 +26,24 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
version: [0, 0]
schema:
// v0.0
{ {
schemas: [ common.DataQuery
// v0.0
{
common.DataQuery
// Specifies the query label selectors. // Specifies the query label selectors.
labelSelector: string | *"{}" labelSelector: string | *"{}"
// Specifies the type of profile to query. // Specifies the type of profile to query.
profileTypeId: string profileTypeId: string
// Allows to group the results. // Allows to group the results.
groupBy: [...string] groupBy: [...string]
// Sets the maximum number of nodes in the flamegraph. // Sets the maximum number of nodes in the flamegraph.
maxNodes?: int64 maxNodes?: int64
#PhlareQueryType: "metrics" | "profile" | *"both" @cuetsy(kind="type") #PhlareQueryType: "metrics" | "profile" | *"both" @cuetsy(kind="type")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -26,35 +26,33 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ common.DataQuery
common.DataQuery
// The actual expression/query that will be evaluated by Prometheus // The actual expression/query that will be evaluated by Prometheus
expr: string expr: string
// Returns only the latest value that Prometheus has scraped for the requested time series // Returns only the latest value that Prometheus has scraped for the requested time series
instant?: bool instant?: bool
// Returns a Range vector, comprised of a set of time series containing a range of data points over time for each time series // Returns a Range vector, comprised of a set of time series containing a range of data points over time for each time series
range?: bool range?: bool
// Execute an additional query to identify interesting raw samples relevant for the given expr // Execute an additional query to identify interesting raw samples relevant for the given expr
exemplar?: bool exemplar?: bool
// Specifies which editor is being used to prepare the query. It can be "code" or "builder" // Specifies which editor is being used to prepare the query. It can be "code" or "builder"
editorMode?: #QueryEditorMode editorMode?: #QueryEditorMode
// Query format to determine how to display data points in panel. It can be "time_series", "table", "heatmap" // Query format to determine how to display data points in panel. It can be "time_series", "table", "heatmap"
format?: #PromQueryFormat format?: #PromQueryFormat
// Series name override or template. Ex. {{hostname}} will be replaced with label value for hostname // Series name override or template. Ex. {{hostname}} will be replaced with label value for hostname
legendFormat?: string legendFormat?: string
// @deprecated Used to specify how many times to divide max data points by. We use max data points under query options // @deprecated Used to specify how many times to divide max data points by. We use max data points under query options
// See https://github.com/grafana/grafana/issues/48081 // See https://github.com/grafana/grafana/issues/48081
intervalFactor?: number intervalFactor?: number
#QueryEditorMode: "code" | "builder" @cuetsy(kind="enum") #QueryEditorMode: "code" | "builder" @cuetsy(kind="enum")
#PromQueryFormat: "time_series" | "table" | "heatmap" @cuetsy(kind="type") #PromQueryFormat: "time_series" | "table" | "heatmap" @cuetsy(kind="type")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -26,52 +26,50 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ #TempoQuery: common.DataQuery & {
#TempoQuery: common.DataQuery & { // TraceQL query or trace ID
// TraceQL query or trace ID query: string
query: string // Logfmt query to filter traces by their tags. Example: http.status_code=200 error=true
// Logfmt query to filter traces by their tags. Example: http.status_code=200 error=true search?: string
search?: string // Query traces by service name
// Query traces by service name serviceName?: string
serviceName?: string // Query traces by span name
// Query traces by span name spanName?: string
spanName?: string // Define the minimum duration to select traces. Use duration format, for example: 1.2s, 100ms
// Define the minimum duration to select traces. Use duration format, for example: 1.2s, 100ms minDuration?: string
minDuration?: string // Define the maximum duration to select traces. Use duration format, for example: 1.2s, 100ms
// Define the maximum duration to select traces. Use duration format, for example: 1.2s, 100ms maxDuration?: string
maxDuration?: string // Filters to be included in a PromQL query to select data for the service graph. Example: {client="app",service="app"}
// Filters to be included in a PromQL query to select data for the service graph. Example: {client="app",service="app"} serviceMapQuery?: string
serviceMapQuery?: string // Defines the maximum number of traces that are returned from Tempo
// Defines the maximum number of traces that are returned from Tempo limit?: int64
limit?: int64 filters: [...#TraceqlFilter]
filters: [...#TraceqlFilter] } @cuetsy(kind="interface") @grafana(TSVeneer="type")
} @cuetsy(kind="interface") @grafana(TSVeneer="type")
// search = Loki search, nativeSearch = Tempo search for backwards compatibility // search = Loki search, nativeSearch = Tempo search for backwards compatibility
#TempoQueryType: "traceql" | "traceqlSearch" | "search" | "serviceMap" | "upload" | "nativeSearch" | "clear" @cuetsy(kind="type") #TempoQueryType: "traceql" | "traceqlSearch" | "search" | "serviceMap" | "upload" | "nativeSearch" | "clear" @cuetsy(kind="type")
// static fields are pre-set in the UI, dynamic fields are added by the user // static fields are pre-set in the UI, dynamic fields are added by the user
#TraceqlSearchScope: "unscoped" | "resource" | "span" @cuetsy(kind="enum") #TraceqlSearchScope: "unscoped" | "resource" | "span" @cuetsy(kind="enum")
#TraceqlFilter: { #TraceqlFilter: {
// Uniquely identify the filter, will not be used in the query generation // Uniquely identify the filter, will not be used in the query generation
id: string id: string
// The tag for the search filter, for example: .http.status_code, .service.name, status // The tag for the search filter, for example: .http.status_code, .service.name, status
tag?: string tag?: string
// The operator that connects the tag to the value, for example: =, >, !=, =~ // The operator that connects the tag to the value, for example: =, >, !=, =~
operator?: string operator?: string
// The value for the search filter // The value for the search filter
value?: string | [...string] value?: string | [...string]
// The type of the value, used for example to check whether we need to wrap the value in quotes when generating the query // The type of the value, used for example to check whether we need to wrap the value in quotes when generating the query
valueType?: string valueType?: string
// The scope of the filter, can either be unscoped/all scopes, resource or span // The scope of the filter, can either be unscoped/all scopes, resource or span
scope?: #TraceqlSearchScope scope?: #TraceqlSearchScope
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -26,92 +26,90 @@ composableKinds: DataQuery: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ common.DataQuery
common.DataQuery alias?: string
alias?: string scenarioId?: #TestDataQueryType & (*"random_walk" | _)
scenarioId?: #TestDataQueryType & (*"random_walk" | _) stringInput?: string
stringInput?: string stream?: #StreamingQuery
stream?: #StreamingQuery pulseWave?: #PulseWaveQuery
pulseWave?: #PulseWaveQuery sim?: #SimulationQuery
sim?: #SimulationQuery csvWave?: [...#CSVWave] //TODO can we prevent partial from being generated
csvWave?: [...#CSVWave] //TODO can we prevent partial from being generated labels?: string
labels?: string lines?: int64
lines?: int64 levelColumn?: bool
levelColumn?: bool channel?: string
channel?: string nodes?: #NodesQuery
nodes?: #NodesQuery csvFileName?: string
csvFileName?: string csvContent?: string
csvContent?: string rawFrameContent?: string
rawFrameContent?: string seriesCount?: int32
seriesCount?: int32 usa?: #USAQuery
usa?: #USAQuery errorType?: "server_panic" | "frontend_exception" | "frontend_observable"
errorType?: "server_panic" | "frontend_exception" | "frontend_observable" spanCount?: int32
spanCount?: int32 points?: [...[...string | int64]]
points?: [...[...string | int64]]
#TestDataQueryType: "random_walk" | "slow_query" | "random_walk_with_error" | "random_walk_table" | "exponential_heatmap_bucket_data" | "linear_heatmap_bucket_data" | "no_data_points" | "datapoints_outside_range" | "csv_metric_values" | "predictable_pulse" | "predictable_csv_wave" | "streaming_client" | "simulation" | "usa" | "live" | "grafana_api" | "arrow" | "annotations" | "table_static" | "server_error_500" | "logs" | "node_graph" | "flame_graph" | "raw_frame" | "csv_file" | "csv_content" | "trace" | "manual_entry" | "variables-query" @cuetsy(kind="enum", memberNames="RandomWalk|SlowQuery|RandomWalkWithError|RandomWalkTable|ExponentialHeatmapBucketData|LinearHeatmapBucketData|NoDataPoints|DataPointsOutsideRange|CSVMetricValues|PredictablePulse|PredictableCSVWave|StreamingClient|Simulation|USA|Live|GrafanaAPI|Arrow|Annotations|TableStatic|ServerError500|Logs|NodeGraph|FlameGraph|RawFrame|CSVFile|CSVContent|Trace|ManualEntry|VariablesQuery") #TestDataQueryType: "random_walk" | "slow_query" | "random_walk_with_error" | "random_walk_table" | "exponential_heatmap_bucket_data" | "linear_heatmap_bucket_data" | "no_data_points" | "datapoints_outside_range" | "csv_metric_values" | "predictable_pulse" | "predictable_csv_wave" | "streaming_client" | "simulation" | "usa" | "live" | "grafana_api" | "arrow" | "annotations" | "table_static" | "server_error_500" | "logs" | "node_graph" | "flame_graph" | "raw_frame" | "csv_file" | "csv_content" | "trace" | "manual_entry" | "variables-query" @cuetsy(kind="enum", memberNames="RandomWalk|SlowQuery|RandomWalkWithError|RandomWalkTable|ExponentialHeatmapBucketData|LinearHeatmapBucketData|NoDataPoints|DataPointsOutsideRange|CSVMetricValues|PredictablePulse|PredictableCSVWave|StreamingClient|Simulation|USA|Live|GrafanaAPI|Arrow|Annotations|TableStatic|ServerError500|Logs|NodeGraph|FlameGraph|RawFrame|CSVFile|CSVContent|Trace|ManualEntry|VariablesQuery")
#StreamingQuery: { #StreamingQuery: {
type: "signal" | "logs" | "fetch" type: "signal" | "logs" | "fetch"
speed: int32 speed: int32
spread: int32 spread: int32
noise: int32 noise: int32
bands?: int32 bands?: int32
url?: string url?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#PulseWaveQuery: { #PulseWaveQuery: {
timeStep?: int64 timeStep?: int64
onCount?: int64 onCount?: int64
offCount?: int64 offCount?: int64
onValue?: float64 onValue?: float64
offValue?: float64 offValue?: float64
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#SimulationQuery: { #SimulationQuery: {
key: { key: {
type: string type: string
tick: float64 tick: float64
uid?: string uid?: string
} }
config?: {...} config?: {...}
stream?: bool stream?: bool
last?: bool last?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#NodesQuery: { #NodesQuery: {
type?: "random" | "response" | "random edges" type?: "random" | "response" | "random edges"
count?: int64 count?: int64
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#USAQuery: { #USAQuery: {
mode?: string mode?: string
period?: string period?: string
fields?: [...string] fields?: [...string]
states?: [...string] states?: [...string]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
#CSVWave: { #CSVWave: {
timeStep?: int64 timeStep?: int64
name?: string name?: string
valuesCSV?: string valuesCSV?: string
labels?: string labels?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// TODO: Should this live here given it's not used in the dataquery? // TODO: Should this live here given it's not used in the dataquery?
#Scenario: { #Scenario: {
id: string id: string
name: string name: string
stringInput: string stringInput: string
description?: string description?: string
hideAliasField?: bool hideAliasField?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -14,23 +14,19 @@
package grafanaplugin package grafanaplugin
composableKinds: PanelCfg: { composableKinds: PanelCfg: lineage: {
lineage: { schemas: [{
seqs: [ version: [0, 0]
{ schema: {
schemas: [ Options: {
{ // Comma-separated list of values used to filter alert results
Options: { labels: string
// Comma-separated list of values used to filter alert results // Name of the alertmanager used as a source for alerts
labels: string alertmanager: string
// Name of the alertmanager used as a source for alerts // Expand all alert groups by default
alertmanager: string expandAll: bool
// Expand all alert groups by default } @cuetsy(kind="interface")
expandAll: bool }
} @cuetsy(kind="interface") }]
}, lenses: []
]
},
]
}
} }

View File

@@ -18,25 +18,23 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { onlyFromThisDashboard: bool | *false
onlyFromThisDashboard: bool | *false onlyInTimeRange: bool | *false
onlyInTimeRange: bool | *false tags: [...string]
tags: [...string] limit: uint32 | *10
limit: uint32 | *10 showUser: bool | *true
showUser: bool | *true showTime: bool | *true
showTime: bool | *true showTags: bool | *true
showTags: bool | *true navigateToPanel: bool | *true
navigateToPanel: bool | *true navigateBefore: string | *"10m"
navigateBefore: string | *"10m" navigateAfter: string | *"10m"
navigateAfter: string | *"10m" } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -22,60 +22,58 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [
{
schemas: [
// v0.0
{
Options: {
common.OptionsWithLegend
common.OptionsWithTooltip
common.OptionsWithTextFormatting
// Manually select which field from the dataset to represent the x field. schemas: [{
xField?: string version: [0, 0]
// Use the color value for a sibling field to color each bar value. schema: {
colorByField?: string Options: {
// Controls the orientation of the bar chart, either vertical or horizontal. common.OptionsWithLegend
orientation: common.VizOrientation & (*"auto" | _) common.OptionsWithTooltip
// Controls the radius of each bar. common.OptionsWithTextFormatting
barRadius?: float64 & >=0 & <=0.5 | *0
// Controls the rotation of the x axis labels.
xTickLabelRotation: int32 & >=-90 & <=90 | *0
// Sets the max length that a label can have before it is truncated.
xTickLabelMaxLength: int32 & >=0
// Controls the spacing between x axis labels.
// negative values indicate backwards skipping behavior
xTickLabelSpacing?: int32 | *0
// Controls whether bars are stacked or not, either normally or in percent mode.
stacking: common.StackingMode & (*"none" | _)
// This controls whether values are shown on top or to the left of bars.
showValue: common.VisibilityMode & (*"auto" | _)
// Controls the width of bars. 1 = Max width, 0 = Min width.
barWidth: float64 & >=0 & <=1 | *0.97
// Controls the width of groups. 1 = max with, 0 = min width.
groupWidth: float64 & >=0 & <=1 | *0.7
// Enables mode which highlights the entire bar area and shows tooltip when cursor
// hovers over highlighted area
fullHighlight: bool | *false
} @cuetsy(kind="interface")
FieldConfig: {
common.AxisConfig
common.HideableFieldConfig
// Controls line width of the bars. // Manually select which field from the dataset to represent the x field.
lineWidth?: int32 & >=0 & <=10 | *1 xField?: string
// Controls the fill opacity of the bars. // Use the color value for a sibling field to color each bar value.
fillOpacity?: int32 & >=0 & <=100 | *80 colorByField?: string
// Set the mode of the gradient fill. Fill gradient is based on the line color. To change the color, use the standard color scheme field option. // Controls the orientation of the bar chart, either vertical or horizontal.
// Gradient appearance is influenced by the Fill opacity setting. orientation: common.VizOrientation & (*"auto" | _)
gradientMode?: common.GraphGradientMode & (*"none" | _) // Controls the radius of each bar.
// Threshold rendering barRadius?: float64 & >=0 & <=0.5 | *0
thresholdsStyle?: common.GraphThresholdsStyleConfig // Controls the rotation of the x axis labels.
} @cuetsy(kind="interface") xTickLabelRotation: int32 & >=-90 & <=90 | *0
}, // Sets the max length that a label can have before it is truncated.
] xTickLabelMaxLength: int32 & >=0
}, // Controls the spacing between x axis labels.
] // negative values indicate backwards skipping behavior
xTickLabelSpacing?: int32 | *0
// Controls whether bars are stacked or not, either normally or in percent mode.
stacking: common.StackingMode & (*"none" | _)
// This controls whether values are shown on top or to the left of bars.
showValue: common.VisibilityMode & (*"auto" | _)
// Controls the width of bars. 1 = Max width, 0 = Min width.
barWidth: float64 & >=0 & <=1 | *0.97
// Controls the width of groups. 1 = max with, 0 = min width.
groupWidth: float64 & >=0 & <=1 | *0.7
// Enables mode which highlights the entire bar area and shows tooltip when cursor
// hovers over highlighted area
fullHighlight: bool | *false
} @cuetsy(kind="interface")
FieldConfig: {
common.AxisConfig
common.HideableFieldConfig
// Controls line width of the bars.
lineWidth?: int32 & >=0 & <=10 | *1
// Controls the fill opacity of the bars.
fillOpacity?: int32 & >=0 & <=100 | *80
// Set the mode of the gradient fill. Fill gradient is based on the line color. To change the color, use the standard color scheme field option.
// Gradient appearance is influenced by the Fill opacity setting.
gradientMode?: common.GraphGradientMode & (*"none" | _)
// Threshold rendering
thresholdsStyle?: common.GraphThresholdsStyleConfig
} @cuetsy(kind="interface")
}
}]
lenses: []
} }
} }

View File

@@ -22,21 +22,19 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { common.SingleStatBaseOptions
common.SingleStatBaseOptions displayMode: common.BarGaugeDisplayMode & (*"gradient" | _)
displayMode: common.BarGaugeDisplayMode & (*"gradient" | _) valueMode: common.BarGaugeValueMode & (*"color" | _)
valueMode: common.BarGaugeValueMode & (*"color" | _) showUnfilled: bool | *true
showUnfilled: bool | *true minVizWidth: uint32 | *0
minVizWidth: uint32 | *0 minVizHeight: uint32 | *10
minVizHeight: uint32 | *10 } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -14,23 +14,17 @@
package grafanaplugin package grafanaplugin
composableKinds: PanelCfg: { composableKinds: PanelCfg: lineage: {
lineage: { schemas: [{
seqs: [ version: [0, 0]
{ schema: {
schemas: [ Options: {
{ ...
Options: { } @cuetsy(kind="interface")
// anything for now FieldConfig: {
... ...
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
FieldConfig: { }
// anything for now }]
... lenses: []
} @cuetsy(kind="interface")
},
]
},
]
}
} }

View File

@@ -14,19 +14,14 @@
package grafanaplugin package grafanaplugin
composableKinds: PanelCfg: { composableKinds: PanelCfg: lineage: {
lineage: { schemas: [{
seqs: [ version: [0, 0]
{ schema: {
schemas: [ Options: {
{ ...
Options: { } @cuetsy(kind="interface")
// anything for now }
... }]
} @cuetsy(kind="interface") lenses: []
},
]
},
]
}
} }

View File

@@ -18,25 +18,23 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { keepTime: bool | *false
keepTime: bool | *false includeVars: bool | *false
includeVars: bool | *false showStarred: bool | *true
showStarred: bool | *true showRecentlyViewed: bool | *false
showRecentlyViewed: bool | *false showSearch: bool | *false
showSearch: bool | *false showHeadings: bool | *true
showHeadings: bool | *true maxItems: int | *10
maxItems: int | *10 query: string | *""
query: string | *"" folderId?: int
folderId?: int tags: [...string] | *[]
tags: [...string] | *[] } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -18,16 +18,14 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { selectedSeries: int32 & >=0 | *0
selectedSeries: int32 & >=0 | *0 } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -26,25 +26,23 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ UpdateConfig: {
UpdateConfig: { render: bool
render: bool dataChanged: bool
dataChanged: bool schemaChanged: bool
schemaChanged: bool } @cuetsy(kind="type")
} @cuetsy(kind="type")
DebugMode: "render" | "events" | "cursor" | "State" | "ThrowError" @cuetsy(kind="enum") DebugMode: "render" | "events" | "cursor" | "State" | "ThrowError" @cuetsy(kind="enum")
Options: { Options: {
mode: DebugMode mode: DebugMode
counters?: UpdateConfig counters?: UpdateConfig
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -22,18 +22,16 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { common.SingleStatBaseOptions
common.SingleStatBaseOptions showThresholdLabels: bool | *false
showThresholdLabels: bool | *false showThresholdMarkers: bool | *true
showThresholdMarkers: bool | *true } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -22,57 +22,55 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { view: MapViewConfig
view: MapViewConfig controls: ControlsOptions
controls: ControlsOptions basemap: ui.MapLayerOptions
basemap: ui.MapLayerOptions layers: [...ui.MapLayerOptions]
layers: [...ui.MapLayerOptions] tooltip: TooltipOptions
tooltip: TooltipOptions } @cuetsy(kind="interface")
} @cuetsy(kind="interface")
MapViewConfig: { MapViewConfig: {
id: string | *"zero" id: string | *"zero"
lat?: int64 | *0 lat?: int64 | *0
lon?: int64 | *0 lon?: int64 | *0
zoom?: int64 | *1 zoom?: int64 | *1
minZoom?: int64 minZoom?: int64
maxZoom?: int64 maxZoom?: int64
padding?: int64 padding?: int64
allLayers?: bool | *true allLayers?: bool | *true
lastOnly?: bool lastOnly?: bool
layer?: string layer?: string
shared?: bool shared?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
ControlsOptions: { ControlsOptions: {
// Zoom (upper left) // Zoom (upper left)
showZoom?: bool showZoom?: bool
// let the mouse wheel zoom // let the mouse wheel zoom
mouseWheelZoom?: bool mouseWheelZoom?: bool
// Lower right // Lower right
showAttribution?: bool showAttribution?: bool
// Scale options // Scale options
showScale?: bool showScale?: bool
// Show debug // Show debug
showDebug?: bool showDebug?: bool
// Show measure // Show measure
showMeasure?: bool showMeasure?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
TooltipOptions: { TooltipOptions: {
mode: TooltipMode mode: TooltipMode
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
TooltipMode: "none" | "details" @cuetsy(kind="enum",memberNames="None|Details") TooltipMode: "none" | "details" @cuetsy(kind="enum",memberNames="None|Details")
MapCenterID: "zero" | "coords" | "fit" @cuetsy(kind="enum",members="Zero|Coordinates|Fit") MapCenterID: "zero" | "coords" | "fit" @cuetsy(kind="enum",members="Zero|Coordinates|Fit")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -18,149 +18,145 @@ import (
ui "github.com/grafana/grafana/packages/grafana-schema/src/common" ui "github.com/grafana/grafana/packages/grafana-schema/src/common"
) )
composableKinds: PanelCfg: { composableKinds: PanelCfg: lineage: {
lineage: { schemas: [{
seqs: [ version: [0, 0]
{ schema: {
schemas: [ // Controls the color mode of the heatmap
{ HeatmapColorMode: "opacity" | "scheme" @cuetsy(kind="enum")
// Controls the color mode of the heatmap // Controls the color scale of the heatmap
HeatmapColorMode: "opacity" | "scheme" @cuetsy(kind="enum") HeatmapColorScale: "linear" | "exponential" @cuetsy(kind="enum")
// Controls the color scale of the heatmap // Controls various color options
HeatmapColorScale: "linear" | "exponential" @cuetsy(kind="enum") HeatmapColorOptions: {
// Controls various color options // Sets the color mode
HeatmapColorOptions: { mode?: HeatmapColorMode
// Sets the color mode // Controls the color scheme used
mode?: HeatmapColorMode scheme: string
// Controls the color scheme used // Controls the color fill when in opacity mode
scheme: string fill: string
// Controls the color fill when in opacity mode // Controls the color scale
fill: string scale?: HeatmapColorScale
// Controls the color scale // Controls the exponent when scale is set to exponential
scale?: HeatmapColorScale exponent: float32
// Controls the exponent when scale is set to exponential // Controls the number of color steps
exponent: float32 steps: uint8 & >=2 & <=128
// Controls the number of color steps // Reverses the color scheme
steps: uint8 & >=2 & <=128 reverse: bool
// Reverses the color scheme // Sets the minimum value for the color scale
reverse: bool min?: float32
// Sets the minimum value for the color scale // Sets the maximum value for the color scale
min?: float32 max?: float32
// Sets the maximum value for the color scale } @cuetsy(kind="interface")
max?: float32 // Configuration options for the yAxis
} @cuetsy(kind="interface") YAxisConfig: {
// Configuration options for the yAxis ui.AxisConfig
YAxisConfig: {
ui.AxisConfig
// Sets the yAxis unit // Sets the yAxis unit
unit?: string unit?: string
// Reverses the yAxis // Reverses the yAxis
reverse?: bool reverse?: bool
// Controls the number of decimals for yAxis values // Controls the number of decimals for yAxis values
decimals?: float32 decimals?: float32
// Sets the minimum value for the yAxis // Sets the minimum value for the yAxis
min?: float32 min?: float32
// Sets the maximum value for the yAxis // Sets the maximum value for the yAxis
max?: float32 max?: float32
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Controls cell value options // Controls cell value options
CellValues: { CellValues: {
// Controls the cell value unit // Controls the cell value unit
unit?: string unit?: string
// Controls the number of decimals for cell values // Controls the number of decimals for cell values
decimals?: float32 decimals?: float32
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Controls the value filter range // Controls the value filter range
FilterValueRange: { FilterValueRange: {
// Sets the filter range to values less than or equal to the given value // Sets the filter range to values less than or equal to the given value
le?: float32 le?: float32
// Sets the filter range to values greater than or equal to the given value // Sets the filter range to values greater than or equal to the given value
ge?: float32 ge?: float32
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Controls tooltip options // Controls tooltip options
HeatmapTooltip: { HeatmapTooltip: {
// Controls if the tooltip is shown // Controls if the tooltip is shown
show: bool show: bool
// Controls if the tooltip shows a histogram of the y-axis values // Controls if the tooltip shows a histogram of the y-axis values
yHistogram?: bool yHistogram?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Controls legend options // Controls legend options
HeatmapLegend: { HeatmapLegend: {
// Controls if the legend is shown // Controls if the legend is shown
show: bool show: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Controls exemplar options // Controls exemplar options
ExemplarConfig: { ExemplarConfig: {
// Sets the color of the exemplar markers // Sets the color of the exemplar markers
color: string color: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
// Controls frame rows options // Controls frame rows options
RowsHeatmapOptions: { RowsHeatmapOptions: {
// Sets the name of the cell when not calculating from data // Sets the name of the cell when not calculating from data
value?: string value?: string
// Controls tick alignment when not calculating from data // Controls tick alignment when not calculating from data
layout?: ui.HeatmapCellLayout layout?: ui.HeatmapCellLayout
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
Options: { Options: {
// Controls if the heatmap should be calculated from data // Controls if the heatmap should be calculated from data
calculate?: bool | *false calculate?: bool | *false
// Calculation options for the heatmap // Calculation options for the heatmap
calculation?: ui.HeatmapCalculationOptions calculation?: ui.HeatmapCalculationOptions
// Controls the color options // Controls the color options
color: HeatmapColorOptions | *{ color: HeatmapColorOptions | *{
// mode: HeatmapColorMode // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed // mode: HeatmapColorMode // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed
scheme: "Oranges" scheme: "Oranges"
fill: "dark-orange" fill: "dark-orange"
// scale: HeatmapColorScale // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed // scale: HeatmapColorScale // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed
reverse: false reverse: false
exponent: 0.5 exponent: 0.5
steps: 64 steps: 64
} }
// Filters values between a given range // Filters values between a given range
filterValues?: FilterValueRange | *{ filterValues?: FilterValueRange | *{
le: 1e-9 le: 1e-9
} }
// Controls tick alignment and value name when not calculating from data // Controls tick alignment and value name when not calculating from data
rowsFrame?: RowsHeatmapOptions rowsFrame?: RowsHeatmapOptions
// | *{ // | *{
// layout: ui.HeatmapCellLayout & "auto" // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed // layout: ui.HeatmapCellLayout & "auto" // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed
// } // }
// Controls the display of the value in the cell // Controls the display of the value in the cell
showValue: ui.VisibilityMode & (*"auto" | _) showValue: ui.VisibilityMode & (*"auto" | _)
// Controls gap between cells // Controls gap between cells
cellGap?: uint8 & >=0 & <=25 | *1 cellGap?: uint8 & >=0 & <=25 | *1
// Controls cell radius // Controls cell radius
cellRadius?: float32 cellRadius?: float32
// Controls cell value unit // Controls cell value unit
cellValues?: CellValues | *{} cellValues?: CellValues | *{}
// Controls yAxis placement // Controls yAxis placement
yAxis: YAxisConfig yAxis: YAxisConfig
// | *{ // | *{
// axisPlacement: ui.AxisPlacement & "left" // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed // axisPlacement: ui.AxisPlacement & "left" // TODO: fix after remove when https://github.com/grafana/cuetsy/issues/74 is fixed
// } // }
// Controls legend options // Controls legend options
legend: HeatmapLegend | *{ legend: HeatmapLegend | *{
show: true show: true
} }
// Controls tooltip options // Controls tooltip options
tooltip: HeatmapTooltip | *{ tooltip: HeatmapTooltip | *{
show: true show: true
yHistogram: false yHistogram: false
} }
// Controls exemplar options // Controls exemplar options
exemplars: ExemplarConfig | *{ exemplars: ExemplarConfig | *{
color: "rgba(255,0,255,0.7)" color: "rgba(255,0,255,0.7)"
} }
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
FieldConfig: { FieldConfig: {
ui.HideableFieldConfig ui.HideableFieldConfig
scaleDistribution?: ui.ScaleDistributionConfig scaleDistribution?: ui.ScaleDistributionConfig
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
}
} }

View File

@@ -22,37 +22,35 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { common.OptionsWithLegend
common.OptionsWithLegend common.OptionsWithTooltip
common.OptionsWithTooltip
//Size of each bucket //Size of each bucket
bucketSize?: int32 bucketSize?: int32
//Offset buckets by this amount //Offset buckets by this amount
bucketOffset?: int32 | *0 bucketOffset?: int32 | *0
//Combines multiple series into a single histogram //Combines multiple series into a single histogram
combine?: bool combine?: bool
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
FieldConfig: { FieldConfig: {
common.AxisConfig common.AxisConfig
common.HideableFieldConfig common.HideableFieldConfig
// Controls line width of the bars. // Controls line width of the bars.
lineWidth?: uint32 & <=10 | *1 lineWidth?: uint32 & <=10 | *1
// Controls the fill opacity of the bars. // Controls the fill opacity of the bars.
fillOpacity?: uint32 & <=100 | *80 fillOpacity?: uint32 & <=100 | *80
// Set the mode of the gradient fill. Fill gradient is based on the line color. To change the color, use the standard color scheme field option. // Set the mode of the gradient fill. Fill gradient is based on the line color. To change the color, use the standard color scheme field option.
// Gradient appearance is influenced by the Fill opacity setting. // Gradient appearance is influenced by the Fill opacity setting.
gradientMode?: common.GraphGradientMode & (*"none" | _) gradientMode?: common.GraphGradientMode & (*"none" | _)
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -22,23 +22,21 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { showLabels: bool
showLabels: bool showCommonLabels: bool
showCommonLabels: bool showTime: bool
showTime: bool wrapLogMessage: bool
wrapLogMessage: bool prettifyLogMessage: bool
prettifyLogMessage: bool enableLogDetails: bool
enableLogDetails: bool sortOrder: common.LogsSortOrder
sortOrder: common.LogsSortOrder dedupStrategy: common.LogsDedupStrategy
dedupStrategy: common.LogsDedupStrategy } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -18,18 +18,16 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { // empty/missing will default to grafana blog
// empty/missing will default to grafana blog feedUrl?: string
feedUrl?: string showImage?: bool | *true
showImage?: bool | *true } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -18,38 +18,37 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
version: [0, 0]
schema:
// v0.0
{ {
schemas: [ ArcOption: {
// v0.0 // Field from which to get the value. Values should be less than 1, representing fraction of a circle.
{ field?: string
ArcOption: { // The color of the arc.
// Field from which to get the value. Values should be less than 1, representing fraction of a circle. color?: string
field?: string } @cuetsy(kind="interface")
// The color of the arc. NodeOptions: {
color?: string // Unit for the main stat to override what ever is set in the data frame.
} @cuetsy(kind="interface") mainStatUnit?: string
NodeOptions: { // Unit for the secondary stat to override what ever is set in the data frame.
// Unit for the main stat to override what ever is set in the data frame. secondaryStatUnit?: string
mainStatUnit?: string // Define which fields are shown as part of the node arc (colored circle around the node).
// Unit for the secondary stat to override what ever is set in the data frame. arcs?: [...ArcOption]
secondaryStatUnit?: string }
// Define which fields are shown as part of the node arc (colored circle around the node). EdgeOptions: {
arcs?: [...ArcOption] // Unit for the main stat to override what ever is set in the data frame.
} mainStatUnit?: string
EdgeOptions: { // Unit for the secondary stat to override what ever is set in the data frame.
// Unit for the main stat to override what ever is set in the data frame. secondaryStatUnit?: string
mainStatUnit?: string }
// Unit for the secondary stat to override what ever is set in the data frame. Options: {
secondaryStatUnit?: string nodes?: NodeOptions
} edges?: EdgeOptions
Options: { } @cuetsy(kind="interface")
nodes?: NodeOptions }
edges?: EdgeOptions }]
} @cuetsy(kind="interface") lenses: []
},
]
},
]
} }
} }

View File

@@ -22,37 +22,36 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
version: [0, 0]
schema:
// v0.0
{ {
schemas: [ // Select the pie chart display style.
// v0.0 PieChartType: "pie" | "donut" @cuetsy(kind="enum")
{ // Select labels to display on the pie chart.
// Select the pie chart display style. // - Name - The series or field name.
PieChartType: "pie" | "donut" @cuetsy(kind="enum") // - Percent - The percentage of the whole.
// Select labels to display on the pie chart. // - Value - The raw numerical value.
// - Name - The series or field name. PieChartLabels: "name" | "value" | "percent" @cuetsy(kind="enum")
// - Percent - The percentage of the whole. // Select values to display in the legend.
// - Value - The raw numerical value. // - Percent: The percentage of the whole.
PieChartLabels: "name" | "value" | "percent" @cuetsy(kind="enum") // - Value: The raw numerical value.
// Select values to display in the legend. PieChartLegendValues: "value" | "percent" @cuetsy(kind="enum")
// - Percent: The percentage of the whole. PieChartLegendOptions: {
// - Value: The raw numerical value. common.VizLegendOptions
PieChartLegendValues: "value" | "percent" @cuetsy(kind="enum") values: [...PieChartLegendValues]
PieChartLegendOptions: { } @cuetsy(kind="interface")
common.VizLegendOptions Options: {
values: [...PieChartLegendValues] common.OptionsWithTooltip
} @cuetsy(kind="interface") common.SingleStatBaseOptions
Options: { pieType: PieChartType
common.OptionsWithTooltip displayLabels: [...PieChartLabels]
common.SingleStatBaseOptions legend: PieChartLegendOptions
pieType: PieChartType } @cuetsy(kind="interface")
displayLabels: [...PieChartLabels] FieldConfig: common.HideableFieldConfig @cuetsy(kind="interface")
legend: PieChartLegendOptions }
} @cuetsy(kind="interface") }]
FieldConfig: common.HideableFieldConfig @cuetsy(kind="interface") lenses: []
},
]
},
]
} }
} }

View File

@@ -22,20 +22,18 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { common.SingleStatBaseOptions
common.SingleStatBaseOptions graphMode: common.BigValueGraphMode & (*"area" | _)
graphMode: common.BigValueGraphMode & (*"area" | _) colorMode: common.BigValueColorMode & (*"value" | _)
colorMode: common.BigValueColorMode & (*"value" | _) justifyMode: common.BigValueJustifyMode & (*"auto" | _)
justifyMode: common.BigValueJustifyMode & (*"auto" | _) textMode: common.BigValueTextMode & (*"auto" | _)
textMode: common.BigValueTextMode & (*"auto" | _) } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -21,32 +21,30 @@ import (
composableKinds: PanelCfg: { composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { ui.OptionsWithLegend
ui.OptionsWithLegend ui.OptionsWithTooltip
ui.OptionsWithTooltip ui.OptionsWithTimezones
ui.OptionsWithTimezones
//Show timeline values on chart //Show timeline values on chart
showValue: ui.VisibilityMode & (*"auto" | _) showValue: ui.VisibilityMode & (*"auto" | _)
//Controls the row height //Controls the row height
rowHeight: float & <=1 | *0.9 rowHeight: float & <=1 | *0.9
//Merge equal consecutive values //Merge equal consecutive values
mergeValues?: bool | *true mergeValues?: bool | *true
//Controls value alignment on the timelines //Controls value alignment on the timelines
alignValue?: ui.TimelineValueAlignment & (*"left" | _) alignValue?: ui.TimelineValueAlignment & (*"left" | _)
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
FieldConfig: { FieldConfig: {
ui.HideableFieldConfig ui.HideableFieldConfig
lineWidth?: uint32 & <=10 | *0 lineWidth?: uint32 & <=10 | *0
fillOpacity?: uint32 & <=100 | *70 fillOpacity?: uint32 & <=100 | *70
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -21,30 +21,28 @@ import (
composableKinds: PanelCfg: { composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { ui.OptionsWithLegend
ui.OptionsWithLegend ui.OptionsWithTooltip
ui.OptionsWithTooltip ui.OptionsWithTimezones
ui.OptionsWithTimezones
//Set the height of the rows //Set the height of the rows
rowHeight: float32 & >=0 & <=1 | *0.9 rowHeight: float32 & >=0 & <=1 | *0.9
//Show values on the columns //Show values on the columns
showValue: ui.VisibilityMode & (*"auto" | _) showValue: ui.VisibilityMode & (*"auto" | _)
//Controls the column width //Controls the column width
colWidth?: float & <=1 | *0.9 colWidth?: float & <=1 | *0.9
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
FieldConfig: { FieldConfig: {
ui.HideableFieldConfig ui.HideableFieldConfig
lineWidth?: uint32 & <=10 | *1 lineWidth?: uint32 & <=10 | *1
fillOpacity?: uint32 & <=100 | *70 fillOpacity?: uint32 & <=100 | *70
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -21,34 +21,32 @@ import (
composableKinds: PanelCfg: { composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ Options: {
Options: { // Represents the index of the selected frame
// Represents the index of the selected frame frameIndex: number | *0
frameIndex: number | *0 // Controls whether the panel should show the header
// Controls whether the panel should show the header showHeader: bool | *true
showHeader: bool | *true // Controls whether the header should show icons for the column types
// Controls whether the header should show icons for the column types showTypeIcons?: bool | *false
showTypeIcons?: bool | *false // Used to control row sorting
// Used to control row sorting sortBy?: [...ui.TableSortByFieldState]
sortBy?: [...ui.TableSortByFieldState] // Controls footer options
// Controls footer options footer?: ui.TableFooterOptions | *{
footer?: ui.TableFooterOptions | *{ // Controls whether the footer should be shown
// Controls whether the footer should be shown show: false
show: false // Controls whether the footer should show the total number of rows on Count calculation
// Controls whether the footer should show the total number of rows on Count calculation countRows: false
countRows: false // Represents the selected calculations
// Represents the selected calculations reducer: []
reducer: [] }
} // Controls the height of the rows
// Controls the height of the rows cellHeight?: ui.TableCellHeight & (*"sm" | _)
cellHeight?: ui.TableCellHeight & (*"sm" | _) } @cuetsy(kind="interface")
} @cuetsy(kind="interface") }
}, }]
] lenses: []
},
]
} }
} }

View File

@@ -18,33 +18,31 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{ TextMode: "html" | "markdown" | "code" @cuetsy(kind="enum",memberNames="HTML|Markdown|Code")
TextMode: "html" | "markdown" | "code" @cuetsy(kind="enum",memberNames="HTML|Markdown|Code")
CodeLanguage: "json" | "yaml" | "xml" | "typescript" | "sql" | "go" | "markdown" | "html" | *"plaintext" @cuetsy(kind="enum") CodeLanguage: "json" | "yaml" | "xml" | "typescript" | "sql" | "go" | "markdown" | "html" | *"plaintext" @cuetsy(kind="enum")
CodeOptions: { CodeOptions: {
// The language passed to monaco code editor // The language passed to monaco code editor
language: CodeLanguage language: CodeLanguage
showLineNumbers: bool | *false showLineNumbers: bool | *false
showMiniMap: bool | *false showMiniMap: bool | *false
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
Options: { Options: {
mode: TextMode & (*"markdown" | _) mode: TextMode & (*"markdown" | _)
code?: CodeOptions code?: CodeOptions
content: string | *""" content: string | *"""
# Title # Title
For markdown syntax help: [commonmark.org/help](https://commonmark.org/help/) For markdown syntax help: [commonmark.org/help](https://commonmark.org/help/)
""" """
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }

View File

@@ -18,21 +18,17 @@ import (
"github.com/grafana/grafana/packages/grafana-schema/src/common" "github.com/grafana/grafana/packages/grafana-schema/src/common"
) )
composableKinds: PanelCfg: { composableKinds: PanelCfg: lineage: {
lineage: { schemas: [{
seqs: [ version: [0, 0]
{ schema: {
schemas: [ Options: common.OptionsWithTimezones & {
{ legend: common.VizLegendOptions
Options: common.OptionsWithTimezones & { tooltip: common.VizTooltipOptions
legend: common.VizLegendOptions } @cuetsy(kind="interface")
tooltip: common.VizTooltipOptions
} @cuetsy(kind="interface")
FieldConfig: common.GraphFieldConfig & {} @cuetsy(kind="interface") FieldConfig: common.GraphFieldConfig & {} @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
}
} }

View File

@@ -18,25 +18,21 @@ import (
"github.com/grafana/grafana/packages/grafana-schema/src/common" "github.com/grafana/grafana/packages/grafana-schema/src/common"
) )
composableKinds: PanelCfg: { composableKinds: PanelCfg: lineage: {
lineage: { schemas: [{
seqs: [ version: [0, 0]
{ schema: {
schemas: [ // Identical to timeseries... except it does not have timezone settings
{ Options: {
// Identical to timeseries... except it does not have timezone settings legend: common.VizLegendOptions
Options: { tooltip: common.VizTooltipOptions
legend: common.VizLegendOptions
tooltip: common.VizTooltipOptions
// Name of the x field to use (defaults to first number) // Name of the x field to use (defaults to first number)
xField?: string xField?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
FieldConfig: common.GraphFieldConfig & {} @cuetsy(kind="interface") FieldConfig: common.GraphFieldConfig & {} @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
}
} }

View File

@@ -26,54 +26,52 @@ composableKinds: PanelCfg: {
maturity: "experimental" maturity: "experimental"
lineage: { lineage: {
seqs: [ schemas: [{
{ version: [0, 0]
schemas: [ schema: {
{
SeriesMapping: "auto" | "manual" @cuetsy(kind="enum") SeriesMapping: "auto" | "manual" @cuetsy(kind="enum")
ScatterShow: "points" | "lines" | "points+lines" @cuetsy(kind="enum", memberNames="Points|Lines|PointsAndLines") ScatterShow: "points" | "lines" | "points+lines" @cuetsy(kind="enum", memberNames="Points|Lines|PointsAndLines")
XYDimensionConfig: { XYDimensionConfig: {
frame: int32 & >=0 frame: int32 & >=0
x?: string x?: string
exclude?: [...string] exclude?: [...string]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
ScatterFieldConfig: { ScatterFieldConfig: {
common.HideableFieldConfig common.HideableFieldConfig
common.AxisConfig common.AxisConfig
show?: ScatterShow & (*"points" | _) show?: ScatterShow & (*"points" | _)
pointSize?: common.ScaleDimensionConfig pointSize?: common.ScaleDimensionConfig
lineColor?: common.ColorDimensionConfig lineColor?: common.ColorDimensionConfig
pointColor?: common.ColorDimensionConfig pointColor?: common.ColorDimensionConfig
labelValue?: common.TextDimensionConfig labelValue?: common.TextDimensionConfig
lineWidth?: int32 & >=0 lineWidth?: int32 & >=0
lineStyle?: common.LineStyle lineStyle?: common.LineStyle
label?: common.VisibilityMode & (*"auto" | _) label?: common.VisibilityMode & (*"auto" | _)
} @cuetsy(kind="interface",TSVeneer="type") } @cuetsy(kind="interface",TSVeneer="type")
ScatterSeriesConfig: { ScatterSeriesConfig: {
ScatterFieldConfig ScatterFieldConfig
x?: string x?: string
y?: string y?: string
name?: string name?: string
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
Options: { Options: {
common.OptionsWithLegend common.OptionsWithLegend
common.OptionsWithTooltip common.OptionsWithTooltip
seriesMapping?: SeriesMapping seriesMapping?: SeriesMapping
dims: XYDimensionConfig dims: XYDimensionConfig
series: [...ScatterSeriesConfig] series: [...ScatterSeriesConfig]
} @cuetsy(kind="interface") } @cuetsy(kind="interface")
}, }
] }]
}, lenses: []
]
} }
} }