mcp
Qué hace este MCP
Queries Google Cloud Monitoring metrics, time series, PromQL ranges, alerts, policies and dashboards.
Herramientas
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. The name of the alert. The format is: projects/[PROJECT_ID_OR_NUMBER]/alerts/[ALERT_ID] The `[ALERT_ID]` is a system-assigned unique identifier for the alert.'}}, 'description': 'The `GetAlert` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Metric': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'An existing metric type, see google.api.MetricDescriptor. For example, `custom.googleapis.com/invoice/paid/amount`.'}, 'labels': {'type': 'object', 'description': 'The set of label values that uniquely identify this metric. All labels listed in the `MetricDescriptor` must be assigned values.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A specific metric, identified by specifying values for all of the labels of a `MetricDescriptor`.'}, 'LogMetadata': {'type': 'object', 'properties': {'extractedLabels': {'type': 'object', 'description': 'The labels extracted from the log.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Information about the log for log-based alerts.'}, 'PolicySnapshot': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'The name of the alert policy resource. In the form of "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]".'}, 'severity': {'enum': ['SEVERITY_UNSPECIFIED', 'CRITICAL', 'ERROR', 'WARNING'], 'type': 'string', 'description': 'The severity of the alert policy.', 'x-google-enum-descriptions': ['No severity is specified. This is the default value.', 'This is the highest severity level. Use this if the problem could cause significant damage or downtime.', 'This is the medium severity level. Use this if the problem could cause minor damage or downtime.', 'This is the lowest severity level. Use this if the problem is not causing any damage or downtime, but could potentially lead to a problem in the future.']}, 'userLabels': {'type': 'object', 'description': 'The user labels for the alert policy.', 'additionalProperties': {'type': 'string'}}, 'displayName': {'type': 'string', 'description': 'The display name of the alert policy.'}}, 'description': 'The state of the policy at the time the alert was generated.'}, 'MonitoredResource': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The monitored resource type. This field must match the `type` field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is `gce_instance`. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).'}, 'labels': {'type': 'object', 'description': 'Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels `"project_id"`, `"instance_id"`, and `"zone"`.', 'additionalProperties': {'type': 'string'}}}, 'description': 'An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The `type` field identifies a MonitoredResourceDescriptor object that describes the resource\'s schema. Information in the `labels` field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for `"gce_instance"` has labels `"project_id"`, `"instance_id"` and `"zone"`: { "type": "gce_instance", "labels": { "project_id": "my-project", "instance_id": "12345678901234", "zone": "us-central1-a" }}'}, 'MonitoredResourceMetadata': {'type': 'object', 'properties': {'userLabels': {'type': 'object', 'description': 'Output only. A map of user-defined metadata labels.', 'additionalProperties': {'type': 'string'}}, 'systemLabels': {'type': 'object', 'description': 'Output only. Values for predefined system metadata labels. System labels are a kind of metadata extracted by Google, including "machine_image", "vpc", "subnet_id", "security_group", "name", etc. System label values can be only strings, Boolean values, or a list of strings. For example: { "name": "my-test-instance", "security_group": ["a", "b", "c"], "spot_instance": false }', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Auxiliary metadata for a MonitoredResource object. MonitoredResource objects contain the minimum set of information to uniquely identify a monitored resource instance. There is some other useful auxiliary metadata. Monitoring and Logging use an ingestion pipeline to extract metadata for cloud resources of all types, and store the metadata in this message.'}}, 'properties': {'log': {'$ref': '#/$defs/LogMetadata', 'description': 'The log information associated with the alert. This field is only populated for log-based alerts.'}, 'name': {'type': 'string', 'description': 'Identifier. The name of the alert. The format is: projects/[PROJECT_ID_OR_NUMBER]/alerts/[ALERT_ID] The `[ALERT_ID]` is a system-assigned unique identifier for the alert.', 'x-google-identifier': True}, 'state': {'enum': ['STATE_UNSPECIFIED', 'OPEN', 'CLOSED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The current state of the alert.', 'x-google-enum-descriptions': ['The alert state is unspecified.', 'The alert is open.', 'The alert is closed.']}, 'metric': {'$ref': '#/$defs/Metric', 'description': "The metric type and any metric labels preserved from the incident's generating condition."}, 'policy': {'$ref': '#/$defs/PolicySnapshot', 'description': 'The snapshot of the alert policy that generated this alert.'}, 'metadata': {'$ref': '#/$defs/MonitoredResourceMetadata', 'description': 'The metadata of the monitored resource.'}, 'openTime': {'type': 'string', 'format': 'date-time', 'description': 'The time when the alert was opened.'}, 'resource': {'$ref': '#/$defs/MonitoredResource', 'description': "The monitored resource type and any monitored resource labels preserved from the incident's generating condition."}, 'closeTime': {'type': 'string', 'format': 'date-time', 'description': 'The time when the alert was closed.'}}, 'description': 'An alert is the representation of a violation of an alert policy. It is a read-only resource that cannot be modified by the accompanied API.'}
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. The alerting policy to retrieve. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]'}}, 'description': 'The protocol for the `GetAlertPolicy` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Link': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'The url of a webpage. A url can be templatized by using variables in the path or the query parameters. The total length of a URL should not exceed 2083 characters before and after variable expansion. Example: "https://my_domain.com/playbook?name=${resource.name}"'}, 'displayName': {'type': 'string', 'description': 'A short display name for the link. The display name must not be empty or exceed 63 characters. Example: "playbook".'}}, 'description': 'Links to content such as playbooks, repositories, and other resources.'}, 'Daily': {'type': 'object', 'properties': {'periodicity': {'type': 'integer', 'format': 'int32', 'description': 'Required. The number of days between runs. Must be greater than or equal to 1 day and less than or equal to 31 days.'}, 'executionTime': {'$ref': '#/$defs/TimeOfDay', 'description': 'Optional. The time of day (in UTC) at which the query should run. If left unspecified, the server picks an arbitrary time of day and runs the query at the same time each day.'}}, 'description': 'Used to schedule the query to run every so many days.'}, 'Hourly': {'type': 'object', 'properties': {'periodicity': {'type': 'integer', 'format': 'int32', 'description': 'Required. The number of hours between runs. Must be greater than or equal to 1 hour and less than or equal to 48 hours.'}, 'minuteOffset': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The number of minutes after the hour (in UTC) to run the query. Must be greater than or equal to 0 minutes and less than or equal to 59 minutes. If left unspecified, then an arbitrary offset is used.'}}, 'description': 'Used to schedule the query to run every so many hours.'}, 'Status': {'type': 'object', 'properties': {'code': {'type': 'integer', 'format': 'int32', 'description': 'The status code, which should be an enum value of google.rpc.Code.'}, 'details': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {'description': 'Properties of the object. Contains field @type with type URL.'}}, 'description': 'A list of messages that carry the error details. There is a common set of message types for APIs to use.'}, 'message': {'type': 'string', 'description': 'A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.'}}, 'description': 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'}, 'Minutes': {'type': 'object', 'properties': {'periodicity': {'type': 'integer', 'format': 'int32', 'description': 'Required. Number of minutes between runs. The interval must be greater than or equal to 5 minutes and less than or equal to 1440 minutes.'}}, 'description': 'Used to schedule the query to run every so many minutes.'}, 'Trigger': {'type': 'object', 'properties': {'count': {'type': 'integer', 'format': 'int32', 'description': 'The absolute number of time series that must fail the predicate for the condition to be triggered.'}, 'percent': {'type': 'number', 'format': 'double', 'description': 'The percentage of time series that must fail the predicate for the condition to be triggered.'}}, 'description': 'Specifies how many time series must fail a predicate to trigger a condition. If not specified, then a `{count: 1}` trigger is used.'}, 'LogMatch': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. A logs-based filter. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries) for how this filter should be constructed.'}, 'labelExtractors': {'type': 'object', 'description': 'Optional. A map from a label key to an extractor expression, which is used to extract the value for this label key. Each entry in this map is a specification for how data should be extracted from log entries that match `filter`. Each combination of extracted values is treated as a separate rule for the purposes of triggering notifications. Label keys and corresponding values can be used in notifications generated by this condition. Please see [the documentation on logs-based metric `valueExtractor`s](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics#LogMetric.FIELDS.value_extractor) for syntax and examples.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A condition type that checks whether a log message in the [scoping project](https://cloud.google.com/monitoring/api/v3#project_name) satisfies the given filter. Logs from other projects in the metrics scope are not evaluated.'}, 'Condition': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required if the condition exists. The unique resource name for this condition. Its format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID] `[CONDITION_ID]` is assigned by Cloud Monitoring when the condition is created as part of a new or updated alerting policy. When calling the alertPolicies.create method, do not include the `name` field in the conditions of the requested alerting policy. Cloud Monitoring creates the condition identifiers and includes them in the new policy. When calling the alertPolicies.update method to update a policy, including a condition `name` causes the existing condition to be updated. Conditions without names are added to the updated policy. Existing conditions are deleted if they are not updated. Best practice is to preserve `[CONDITION_ID]` if you make only small changes, such as those to condition thresholds, durations, or trigger values. Otherwise, treat the change as a new condition and let the existing condition be deleted.'}, 'displayName': {'type': 'string', 'description': "A short name or phrase used to identify the condition in dashboards, notifications, and incidents. To avoid confusion, don't use the same display name for multiple conditions in the same policy."}, 'conditionSql': {'$ref': '#/$defs/SqlCondition', 'description': 'A condition that periodically evaluates a SQL query result.'}, 'conditionAbsent': {'$ref': '#/$defs/MetricAbsence', 'description': 'A condition that checks that a time series continues to receive new data points.'}, 'conditionThreshold': {'$ref': '#/$defs/MetricThreshold', 'description': 'A condition that compares a time series against a threshold.'}, 'conditionMatchedLog': {'$ref': '#/$defs/LogMatch', 'description': 'A condition that checks for log messages matching given constraints. If set, no other conditions can be present.'}, 'conditionMonitoringQueryLanguage': {'$ref': '#/$defs/MonitoringQueryLanguageCondition', 'description': 'A condition that uses the Monitoring Query Language to define alerts.'}, 'conditionPrometheusQueryLanguage': {'$ref': '#/$defs/PrometheusQueryLanguageCondition', 'description': 'A condition that uses the Prometheus query language to define alerts.'}}, 'description': 'A condition is a true/false test that determines when an alerting policy should open an incident. If a condition evaluates to true, it signifies that something is wrong.'}, 'TimeOfDay': {'type': 'object', 'properties': {'hours': {'type': 'integer', 'format': 'int32', 'description': 'Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.'}, 'nanos': {'type': 'integer', 'format': 'int32', 'description': 'Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.'}, 'minutes': {'type': 'integer', 'format': 'int32', 'description': 'Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.'}, 'seconds': {'type': 'integer', 'format': 'int32', 'description': 'Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.'}}, 'description': 'Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.'}, 'Aggregation': {'type': 'object', 'properties': {'groupByFields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.'}, 'alignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored. The maximum value of the `alignment_period` is 104 weeks (2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.'}, 'perSeriesAligner': {'enum': ['ALIGN_NONE', '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'], 'type': 'string', 'description': 'An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No alignment. Raw data is returned. Not valid if cross-series reduction is requested. The `value_type` of the result is the same as the `value_type` of the input.', 'Align and convert to DELTA. The output is `delta = y1 - y0`. This alignment is valid for CUMULATIVE and `DELTA` metrics. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align and convert to a rate. The result is computed as `rate = (y1 - y0)/(t1 - t0)`, or "delta over time". Think of this aligner as providing the slope of the line that passes through the value at the start and at the end of the `alignment_period`. This aligner is valid for `CUMULATIVE` and `DELTA` metrics with numeric values. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The output is a `GAUGE` metric with `value_type` `DOUBLE`. If, by "rate", you mean "percentage change", see the `ALIGN_PERCENT_CHANGE` aligner instead.', 'Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for `GAUGE` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for `GAUGE` metrics. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the minimum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the maximum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the mean value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is `DOUBLE`.', 'Align the time series by returning the number of values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric or Boolean values. The `value_type` of the aligned result is `INT64`.', 'Align the time series by returning the sum of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric and distribution values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the output is `DOUBLE`.', 'Align the time series by returning the number of `True` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the number of `False` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the ratio of the number of `True` values to the total number of values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align and convert to a percentage change. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. This alignment returns `((current - previous)/previous) * 100`, where the value of `previous` is determined based on the `alignment_period`. If the values of `current` and `previous` are both 0, then the returned value is 0. If only `previous` is 0, the returned value is infinity. A 10-minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very short-lived spikes. The moving mean is only applicable for data whose values are `>= 0`. Any values `< 0` are treated as a missing datapoint, and are ignored. While `DELTA` metrics are accepted by this alignment, special care should be taken that the values for the metric will always be positive. The output is a `GAUGE` metric with `value_type` `DOUBLE`.']}, 'crossSeriesReducer': {'enum': ['REDUCE_NONE', 'REDUCE_MEAN', 'REDUCE_MIN', 'REDUCE_MAX', 'REDUCE_SUM', 'REDUCE_STDDEV', 'REDUCE_COUNT', 'REDUCE_COUNT_TRUE', 'REDUCE_COUNT_FALSE', 'REDUCE_FRACTION_TRUE', 'REDUCE_PERCENTILE_99', 'REDUCE_PERCENTILE_95', 'REDUCE_PERCENTILE_50', 'REDUCE_PERCENTILE_05'], 'type': 'string', 'description': 'The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No cross-time series reduction. The output of the `Aligner` is returned.', 'Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The `value_type` of the output is DOUBLE.', 'Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the sum across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric and distribution values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric or distribution values. The `value_type` of the output is `DOUBLE`.', 'Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of numeric, Boolean, distribution, and string `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `True`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `False`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the ratio of the number of `True`-valued data points to the total number of data points for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Reduce by computing the [99th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [95th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [50th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [5th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.']}}, 'description': 'Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is _aligned_ to the same time interval boundaries, then the set of time series is optionally _reduced_ in number. Alignment consists of applying the `per_series_aligner` operation to each time series after its data has been divided into regular `alignment_period` time intervals. This process takes _all_ of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period. Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a `cross_series_reducer` to all the time series, optionally sorting the time series into subsets with `group_by_fields`, and applying the reducer to each subset. The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see [Filtering and aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).'}, 'BooleanTest': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Required. The name of the column containing the boolean value. If the value in a row is NULL, that row is ignored.'}}, 'description': 'A test that uses an alerting result in a boolean column produced by the SQL query.'}, 'RowCountTest': {'type': 'object', 'properties': {'threshold': {'type': 'string', 'format': 'int64', 'description': 'Required. The value against which to compare the row count.'}, 'comparison': {'enum': ['COMPARISON_UNSPECIFIED', 'COMPARISON_GT', 'COMPARISON_GE', 'COMPARISON_LT', 'COMPARISON_LE', 'COMPARISON_EQ', 'COMPARISON_NE'], 'type': 'string', 'description': 'Required. The comparison to apply between the number of rows returned by the query and the threshold.', 'x-google-enum-descriptions': ['No ordering relationship is specified.', 'True if the left argument is greater than the right argument.', 'True if the left argument is greater than or equal to the right argument.', 'True if the left argument is less than the right argument.', 'True if the left argument is less than or equal to the right argument.', 'True if the left argument is equal to the right argument.', 'True if the left argument is not equal to the right argument.']}}, 'description': 'A test that checks if the number of rows in the result set violates some threshold.'}, 'SqlCondition': {'type': 'object', 'properties': {'daily': {'$ref': '#/$defs/Daily', 'description': 'Schedule the query to execute every so many days.'}, 'query': {'type': 'string', 'description': 'Required. The Log Analytics SQL query to run, as a string. The query must conform to the required shape. Specifically, the query must not try to filter the input by time. A filter will automatically be applied to filter the input so that the query receives all rows received since the last time the query was run. For example, the following query extracts all log entries containing an HTTP request: SELECT timestamp, log_name, severity, http_request, resource, labels FROM my-project.global._Default._AllLogs WHERE http_request IS NOT NULL'}, 'hourly': {'$ref': '#/$defs/Hourly', 'description': 'Schedule the query to execute every so many hours.'}, 'minutes': {'$ref': '#/$defs/Minutes', 'description': 'Schedule the query to execute every so many minutes.'}, 'booleanTest': {'$ref': '#/$defs/BooleanTest', 'description': 'Test the boolean value in the indicated column.'}, 'rowCountTest': {'$ref': '#/$defs/RowCountTest', 'description': 'Test the row count against a threshold.'}}, 'description': 'A condition that allows alerting policies to be defined using GoogleSQL. SQL conditions examine a sliding window of logs using GoogleSQL. Alert policies with SQL conditions may incur additional billing.'}, 'AlertStrategy': {'type': 'object', 'properties': {'autoClose': {'type': 'string', 'format': 'google-duration', 'description': 'If an alerting policy that was active has no data for this long, any open incidents will close'}, 'notificationPrompts': {'type': 'array', 'items': {'enum': ['NOTIFICATION_PROMPT_UNSPECIFIED', 'OPENED', 'CLOSED'], 'type': 'string', 'x-google-enum-descriptions': ['No strategy specified. Treated as error.', 'Notify when an incident is opened.', 'Notify when an incident is closed.']}, 'description': 'For log-based alert policies, the notification prompts is always [OPENED]. For non log-based alert policies, the notification prompts can be [OPENED] or [OPENED, CLOSED].'}, 'notificationRateLimit': {'$ref': '#/$defs/NotificationRateLimit', 'description': 'Required for log-based alerting policies, i.e. policies with a `LogMatch` condition. This limit is not implemented for alerting policies that do not have a LogMatch condition.'}, 'notificationChannelStrategy': {'type': 'array', 'items': {'$ref': '#/$defs/NotificationChannelStrategy'}, 'description': 'Control how notifications will be sent out, on a per-channel basis.'}}, 'description': 'Control over how the notification channels in `notification_channels` are notified when this alert fires.'}, 'Documentation': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/Link'}, 'description': 'Optional. Links to content such as playbooks, repositories, and other resources. This field can contain up to 3 entries.'}, 'content': {'type': 'string', 'description': 'The body of the documentation, interpreted according to `mime_type`. The content may not exceed 8,192 Unicode characters and may not exceed more than 10,240 bytes when encoded in UTF-8 format, whichever is smaller. This text can be [templatized by using variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars).'}, 'subject': {'type': 'string', 'description': 'Optional. The subject line of the notification. The subject line may not exceed 10,240 bytes. In notifications generated by this policy, the contents of the subject line after variable expansion will be truncated to 255 bytes or shorter at the latest UTF-8 character boundary. The 255-byte limit is recommended by [this thread](https://stackoverflow.com/questions/1592291/what-is-the-email-subject-length-limit). It is both the limit imposed by some third-party ticketing products and it is common to define textual fields in databases as VARCHAR(255). The contents of the subject line can be [templatized by using variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars). If this field is missing or empty, a default subject line will be generated.'}, 'mimeType': {'type': 'string', 'description': 'The format of the `content` field. Presently, only the value `"text/markdown"` is supported. See [Markdown](https://en.wikipedia.org/wiki/Markdown) for more information.'}}, 'description': 'Documentation that is included in the notifications and incidents pertaining to this policy.'}, 'MetricAbsence': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. A [filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold. The filter is similar to the one that is specified in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length.'}, 'trigger': {'$ref': '#/$defs/Trigger', 'description': 'The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by `filter` and `aggregations`.'}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Required. The amount of time that a time series must fail to report new data to be considered failing. The minimum value of this field is 120 seconds. Larger values that are a multiple of a minute--for example, 240 or 300 seconds--are supported. If an invalid value is given, an error will be returned.'}, 'aggregations': {'type': 'array', 'items': {'$ref': '#/$defs/Aggregation'}, 'description': 'Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). Multiple aggregations are applied in the order specified. This field is similar to the one in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the `ListTimeSeries` method when debugging this field.'}}, 'description': 'A condition type that checks that monitored resources are reporting data. The configuration defines a metric and a set of monitored resources. The predicate is considered in violation when a time series for the specified metric of a monitored resource does not include any data in the specified `duration`.'}, 'MutationRecord': {'type': 'object', 'properties': {'mutatedBy': {'type': 'string', 'description': 'The email address of the user making the change.'}, 'mutateTime': {'type': 'string', 'format': 'date-time', 'description': 'When the change occurred.'}}, 'description': 'Describes a change made to a configuration.'}, 'ForecastOptions': {'type': 'object', 'properties': {'forecastHorizon': {'type': 'string', 'format': 'google-duration', 'description': 'Required. The length of time into the future to forecast whether a time series will violate the threshold. If the predicted value is found to violate the threshold, and the violation is observed in all forecasts made for the configured `duration`, then the time series is considered to be failing. The forecast horizon can range from 1 hour to 60 hours.'}}, 'description': 'Options used when forecasting the time series and testing the predicted value against the threshold.'}, 'MetricThreshold': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. A [filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold. The filter is similar to the one that is specified in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length.'}, 'trigger': {'$ref': '#/$defs/Trigger', 'description': 'The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by `filter` and `aggregations`, or by the ratio, if `denominator_filter` and `denominator_aggregations` are specified.'}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Required. The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the `aggregations` field); a good duration is long enough so that a single outlier does not generate spurious alerts, but short enough that unhealthy states are detected and alerted on quickly.'}, 'comparison': {'enum': ['COMPARISON_UNSPECIFIED', 'COMPARISON_GT', 'COMPARISON_GE', 'COMPARISON_LT', 'COMPARISON_LE', 'COMPARISON_EQ', 'COMPARISON_NE'], 'type': 'string', 'description': 'The comparison to apply between the time series (indicated by `filter` and `aggregation`) and the threshold (indicated by `threshold_value`). The comparison is applied on each time series, with the time series on the left-hand side and the threshold on the right-hand side. Only `COMPARISON_LT` and `COMPARISON_GT` are supported currently.', 'x-google-enum-descriptions': ['No ordering relationship is specified.', 'True if the left argument is greater than the right argument.', 'True if the left argument is greater than or equal to the right argument.', 'True if the left argument is less than the right argument.', 'True if the left argument is less than or equal to the right argument.', 'True if the left argument is equal to the right argument.', 'True if the left argument is not equal to the right argument.']}, 'aggregations': {'type': 'array', 'items': {'$ref': '#/$defs/Aggregation'}, 'description': 'Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). Multiple aggregations are applied in the order specified. This field is similar to the one in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the `ListTimeSeries` method when debugging this field.'}, 'thresholdValue': {'type': 'number', 'format': 'double', 'description': 'A value against which to compare the time series.'}, 'forecastOptions': {'$ref': '#/$defs/ForecastOptions', 'description': 'When this field is present, the `MetricThreshold` condition forecasts whether the time series is predicted to violate the threshold within the `forecast_horizon`. When this field is not set, the `MetricThreshold` tests the current value of the timeseries against the threshold.'}, 'denominatorFilter': {'type': 'string', 'description': 'A [filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies a time series that should be used as the denominator of a ratio that will be compared with the threshold. If a `denominator_filter` is specified, the time series specified by the `filter` field will be used as the numerator. The filter must specify the metric type and optionally may contain restrictions on resource type, resource labels, and metric labels. This field may not exceed 2048 Unicode characters in length.'}, 'evaluationMissingData': {'enum': ['EVALUATION_MISSING_DATA_UNSPECIFIED', 'EVALUATION_MISSING_DATA_INACTIVE', 'EVALUATION_MISSING_DATA_ACTIVE', 'EVALUATION_MISSING_DATA_NO_OP'], 'type': 'string', 'description': 'A condition control that determines how metric-threshold conditions are evaluated when data stops arriving. To use this control, the value of the `duration` field must be greater than or equal to 60 seconds.', 'x-google-enum-descriptions': ['An unspecified evaluation missing data option. Equivalent to EVALUATION_MISSING_DATA_NO_OP.', 'If there is no data to evaluate the condition, then evaluate the condition as false.', 'If there is no data to evaluate the condition, then evaluate the condition as true.', 'Do not evaluate the condition to any value if there is no data.']}, 'denominatorAggregations': {'type': 'array', 'items': {'$ref': '#/$defs/Aggregation'}, 'description': 'Specifies the alignment of data points in individual time series selected by `denominatorFilter` as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). When computing ratios, the `aggregations` and `denominator_aggregations` fields must use the same alignment period and produce time series that have the same periodicity and labels.'}}, 'description': 'A condition type that compares a collection of time series against a threshold.'}, 'NotificationRateLimit': {'type': 'object', 'properties': {'period': {'type': 'string', 'format': 'google-duration', 'description': 'Not more than one notification per `period`.'}}, 'description': "Control over the rate of notifications sent to this alerting policy's notification channels."}, 'NotificationChannelStrategy': {'type': 'object', 'properties': {'renotifyInterval': {'type': 'string', 'format': 'google-duration', 'description': 'The frequency at which to send reminder notifications for open incidents. The value must be between 30 minutes and 24 hours.'}, 'notificationChannelNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The full REST resource name for the notification channels that these settings apply to. Each of these correspond to the name field in one of the NotificationChannel objects referenced in the notification_channels field of this AlertPolicy. The format is: projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]'}}, 'description': 'Control over how the notification channels in `notification_channels` are notified when this alert fires, on a per-channel basis.'}, 'MonitoringQueryLanguageCondition': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': '[Monitoring Query Language](https://cloud.google.com/monitoring/mql) query that outputs a boolean stream.'}, 'trigger': {'$ref': '#/$defs/Trigger', 'description': 'The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by `filter` and `aggregations`, or by the ratio, if `denominator_filter` and `denominator_aggregations` are specified.'}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the `aggregations` field); a good duration is long enough so that a single outlier does not generate spurious alerts, but short enough that unhealthy states are detected and alerted on quickly. The default value is zero.'}, 'evaluationMissingData': {'enum': ['EVALUATION_MISSING_DATA_UNSPECIFIED', 'EVALUATION_MISSING_DATA_INACTIVE', 'EVALUATION_MISSING_DATA_ACTIVE', 'EVALUATION_MISSING_DATA_NO_OP'], 'type': 'string', 'description': 'A condition control that determines how metric-threshold conditions are evaluated when data stops arriving.', 'x-google-enum-descriptions': ['An unspecified evaluation missing data option. Equivalent to EVALUATION_MISSING_DATA_NO_OP.', 'If there is no data to evaluate the condition, then evaluate the condition as false.', 'If there is no data to evaluate the condition, then evaluate the condition as true.', 'Do not evaluate the condition to any value if there is no data.']}}, 'description': 'A condition type that allows alerting policies to be defined using [Monitoring Query Language](https://cloud.google.com/monitoring/mql).'}, 'PrometheusQueryLanguageCondition': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Required. The PromQL expression to evaluate. Every evaluation cycle this expression is evaluated at the current time, and all resultant time series become pending/firing alerts. This field must not be empty.'}, 'labels': {'type': 'object', 'description': 'Optional. Labels to add to or overwrite in the PromQL query result. Label names [must be valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). Label values can be [templatized by using variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars). The only available variable names are the names of the labels in the PromQL result, including "__name__" and "value". "labels" may be empty.', 'additionalProperties': {'type': 'string'}}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Alerts are considered firing once their PromQL expression was evaluated to be "true" for this long. Alerts whose PromQL expression was not evaluated to be "true" for long enough are considered pending. Must be a non-negative duration or missing. This field is optional. Its default value is zero.'}, 'alertRule': {'type': 'string', 'description': 'Optional. The alerting rule name of this alert in the corresponding Prometheus configuration file. Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future. This field is optional. If this field is not empty, then it must be a [valid Prometheus label name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). This field may not exceed 2048 Unicode characters in length.'}, 'ruleGroup': {'type': 'string', 'description': 'Optional. The rule group name of this alert in the corresponding Prometheus configuration file. Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future. This field is optional. If this field is not empty, then it must contain a valid UTF-8 string. This field may not exceed 2048 Unicode characters in length.'}, 'evaluationInterval': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. How often this rule should be evaluated. Must be a positive multiple of 30 seconds or missing. This field is optional. Its default value is 30 seconds. If this PrometheusQueryLanguageCondition was generated from a Prometheus alerting rule, then this value should be taken from the enclosing rule group.'}, 'disableMetricValidation': {'type': 'boolean', 'description': 'Optional. Whether to disable metric existence validation for this condition. This allows alerting policies to be defined on metrics that do not yet exist, improving advanced customer workflows such as configuring alerting policies using Terraform. Users with the `monitoring.alertPolicyViewer` role are able to see the name of the non-existent metric in the alerting policy condition.'}}, 'description': 'A condition type that allows alerting policies to be defined using [Prometheus Query Language (PromQL)](https://prometheus.io/docs/prometheus/latest/querying/basics/). The PrometheusQueryLanguageCondition message contains information from a Prometheus alerting rule and its associated rule group. A Prometheus alerting rule is described [here](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/). The semantics of a Prometheus alerting rule is described [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule). A Prometheus rule group is described [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The semantics of a Prometheus rule group is described [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group). Because Cloud Alerting has no representation of a Prometheus rule group resource, we must embed the information of the parent rule group inside each of the conditions that refer to it. We must also update the contents of all Prometheus alerts in case the information of their rule group changes. The PrometheusQueryLanguageCondition protocol buffer combines the information of the corresponding rule group and alerting rule. The structure of the PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure of the Prometheus rule group and alerting rule YAML declarations. The PrometheusQueryLanguageCondition protocol buffer may change in the future to support future rule group and/or alerting rule features. There are no new such features at the present time (2023-06-26).'}}, 'properties': {'name': {'type': 'string', 'description': 'Identifier. Required if the policy exists. The resource name for this policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] `[ALERT_POLICY_ID]` is assigned by Cloud Monitoring when the policy is created. When calling the alertPolicies.create method, do not include the `name` field in the alerting policy passed as part of the request.', 'x-google-identifier': True}, 'enabled': {'type': 'boolean', 'description': 'Whether or not the policy is enabled. On write, the default interpretation if unset is that the policy is enabled. On read, clients should not make any assumption about the state if it has not been populated. The field should always be populated on List and Get operations, unless a field projection has been specified that strips it out.'}, 'combiner': {'enum': ['COMBINE_UNSPECIFIED', 'AND', 'OR', 'AND_WITH_MATCHING_RESOURCE'], 'type': 'string', 'description': 'How to combine the results of multiple conditions to determine if an incident should be opened. If `condition_time_series_query_language` is present, this must be `COMBINE_UNSPECIFIED`.', 'x-google-enum-descriptions': ['An unspecified combiner.', 'Combine conditions using the logical `AND` operator. An incident is created only if all the conditions are met simultaneously. This combiner is satisfied if all conditions are met, even if they are met on completely different resources.', 'Combine conditions using the logical `OR` operator. An incident is created if any of the listed conditions is met.', 'Combine conditions using logical `AND` operator, but unlike the regular `AND` option, an incident is created only if all conditions are met simultaneously on at least one resource.']}, 'severity': {'enum': ['SEVERITY_UNSPECIFIED', 'CRITICAL', 'ERROR', 'WARNING'], 'type': 'string', 'description': 'Optional. The severity of an alerting policy indicates how important incidents generated by that policy are. The severity level will be displayed on the Incident detail page and in notifications.', 'x-google-enum-descriptions': ['No severity is specified. This is the default value.', 'This is the highest severity level. Use this if the problem could cause significant damage or downtime.', 'This is the medium severity level. Use this if the problem could cause minor damage or downtime.', 'This is the lowest severity level. Use this if the problem is not causing any damage or downtime, but could potentially lead to a problem in the future.']}, 'validity': {'$ref': '#/$defs/Status', 'description': 'Read-only description of how the alerting policy is invalid. This field is only set when the alerting policy is invalid. An invalid alerting policy will not generate incidents.'}, 'conditions': {'type': 'array', 'items': {'$ref': '#/$defs/Condition'}, 'description': 'A list of conditions for the policy. The conditions are combined by AND or OR according to the `combiner` field. If the combined conditions evaluate to true, then an incident is created. A policy can have from one to six conditions. If `condition_time_series_query_language` is present, it must be the only `condition`. If `condition_monitoring_query_language` is present, it must be the only `condition`.'}, 'userLabels': {'type': 'object', 'description': 'User-supplied key/value data to be used for organizing and identifying the `AlertPolicy` objects. The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter. Note that Prometheus {alert name} is a [valid Prometheus label names](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels), whereas Prometheus {rule group} is an unrestricted UTF-8 string. This means that they cannot be stored as-is in user labels, because they may contain characters that are not allowed in user-label values.', 'additionalProperties': {'type': 'string'}}, 'displayName': {'type': 'string', 'description': 'A short name or phrase used to identify the policy in dashboards, notifications, and incidents. To avoid confusion, don\'t use the same display name for multiple policies in the same project. The name is limited to 512 Unicode characters. The convention for the display_name of a PrometheusQueryLanguageCondition is "{rule group name}/{alert name}", where the {rule group name} and {alert name} should be taken from the corresponding Prometheus configuration file. This convention is not enforced. In any case the display_name is not a unique key of the AlertPolicy.'}, 'alertStrategy': {'$ref': '#/$defs/AlertStrategy', 'description': "Control over how this alerting policy's notification channels are notified."}, 'documentation': {'$ref': '#/$defs/Documentation', 'description': 'Documentation that is included with notifications and incidents related to this policy. Best practice is for the documentation to include information to help responders understand, mitigate, escalate, and correct the underlying problems detected by the alerting policy. Notification channels that have limited capacity might not show this documentation.'}, 'creationRecord': {'$ref': '#/$defs/MutationRecord', 'description': 'A read-only record of the creation of the alerting policy. If provided in a call to create or update, this field will be ignored.'}, 'mutationRecord': {'$ref': '#/$defs/MutationRecord', 'description': 'A read-only record of the most recent change to the alerting policy. If provided in a call to create or update, this field will be ignored.'}, 'notificationChannels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Identifies the notification channels to which notifications should be sent when incidents are opened or closed or when new violations occur on an already opened incident. Each element of this array corresponds to the `name` field in each of the `NotificationChannel` objects that are returned from the `ListNotificationChannels` method. The format of the entries in this field is: projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]'}}, 'description': 'A description of the conditions under which some aspect of your system is considered to be "unhealthy" and the ways to notify people or services about this state. For an overview of alerting policies, see [Introduction to Alerting](https://cloud.google.com/monitoring/alerts/). '}
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. The resource name of the Dashboard. The format is one of: - `dashboards/[DASHBOARD_ID]` (for system dashboards) - `projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID]` (for custom dashboards).'}}, 'description': 'The `GetDashboard` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Row': {'type': 'object', 'properties': {'weight': {'type': 'string', 'format': 'int64', 'description': 'The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative to peers). Greater the weight, greater the height of the row on the screen. If omitted, a value of 1 is used while rendering.'}, 'widgets': {'type': 'array', 'items': {'$ref': '#/$defs/Widget'}, 'description': 'The display widgets arranged horizontally in this row.'}}, 'description': 'Defines the layout properties and content for a row.'}, 'Axis': {'type': 'object', 'properties': {'label': {'type': 'string', 'description': 'The label of the axis.'}, 'scale': {'enum': ['SCALE_UNSPECIFIED', 'LINEAR', 'LOG10'], 'type': 'string', 'description': 'The axis scale. By default, a linear scale is used.', 'x-google-enum-descriptions': ['Scale is unspecified. The view will default to `LINEAR`.', 'Linear scale.', 'Logarithmic scale (base 10).']}}, 'description': 'A chart axis.'}, 'Text': {'type': 'object', 'properties': {'style': {'$ref': '#/$defs/TextStyle', 'description': 'How the text is styled'}, 'format': {'enum': ['FORMAT_UNSPECIFIED', 'MARKDOWN', 'RAW'], 'type': 'string', 'description': 'How the text content is formatted.', 'x-google-enum-descriptions': ['Format is unspecified. Defaults to MARKDOWN.', 'The text contains Markdown formatting.', 'The text contains no special formatting.']}, 'content': {'type': 'string', 'description': 'The text content to be displayed.'}}, 'description': 'A widget that displays textual content.'}, 'Tile': {'type': 'object', 'properties': {'xPos': {'type': 'integer', 'format': 'int32', 'description': 'The zero-indexed position of the tile in grid blocks relative to the left edge of the grid. Tiles must be contained within the specified number of columns. `x_pos` cannot be negative.'}, 'yPos': {'type': 'integer', 'format': 'int32', 'description': 'The zero-indexed position of the tile in grid blocks relative to the top edge of the grid. `y_pos` cannot be negative.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'The width of the tile, measured in grid blocks. Tiles must have a minimum width of 1.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'The height of the tile, measured in grid blocks. Tiles must have a minimum height of 1.'}, 'widget': {'$ref': '#/$defs/Widget', 'description': 'The informational widget contained in the tile. For example an `XyChart`.'}}, 'description': 'A single tile in the mosaic. The placement and size of the tile are configurable.'}, 'Empty': {'type': 'object', 'properties': {}, 'description': 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }'}, 'Column': {'type': 'object', 'properties': {'weight': {'type': 'string', 'format': 'int64', 'description': 'The relative weight of this column. The column weight is used to adjust the width of columns on the screen (relative to peers). Greater the weight, greater the width of the column on the screen. If omitted, a value of 1 is used while rendering.'}, 'widgets': {'type': 'array', 'items': {'$ref': '#/$defs/Widget'}, 'description': 'The display widgets arranged vertically in this column.'}}, 'description': 'Defines the layout properties and content for a column.'}, 'Widget': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Optional. The widget id. Ids may be made up of alphanumerics, dashes and underscores. Widget ids are optional.'}, 'text': {'$ref': '#/$defs/Text', 'description': 'A raw string or markdown displaying textual content.'}, 'blank': {'$ref': '#/$defs/Empty', 'description': 'A blank space.'}, 'title': {'type': 'string', 'description': 'Optional. The title of the widget.'}, 'treemap': {'$ref': '#/$defs/Treemap', 'description': 'A widget that displays data as a treemap.'}, 'xyChart': {'$ref': '#/$defs/XyChart', 'description': 'A chart of time series data.'}, 'pieChart': {'$ref': '#/$defs/PieChart', 'description': 'A widget that displays timeseries data as a pie chart.'}, 'logsPanel': {'$ref': '#/$defs/LogsPanel', 'description': 'A widget that shows a stream of logs.'}, 'scorecard': {'$ref': '#/$defs/Scorecard', 'description': 'A scorecard summarizing time series data.'}, 'timeRange': {'$ref': '#/$defs/TimeRange', 'description': 'Optional. Represents a time range for the widget. When set, this time range will override the dashboard time range. Supported for line, stacked area and stacked bar widgets only.'}, 'alertChart': {'$ref': '#/$defs/AlertChart', 'description': 'A chart of alert policy data.'}, 'incidentList': {'$ref': '#/$defs/IncidentList', 'description': 'A widget that shows list of incidents.'}, 'filterControl': {'$ref': '#/$defs/FilterControl', 'description': 'A widget that displays an input field to change the value of a template variable.'}, 'sectionHeader': {'$ref': '#/$defs/SectionHeader', 'description': 'A widget that defines a section header for easier navigation of the dashboard.'}, 'singleViewGroup': {'$ref': '#/$defs/SingleViewGroup', 'description': 'A widget that groups the other widgets by using a dropdown menu.'}, 'timeSeriesTable': {'$ref': '#/$defs/TimeSeriesTable', 'description': 'A widget that displays time series data in a tabular format.'}, 'collapsibleGroup': {'$ref': '#/$defs/CollapsibleGroup', 'description': 'A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets.'}, 'errorReportingPanel': {'$ref': '#/$defs/ErrorReportingPanel', 'description': 'A widget that displays a list of error groups.'}, 'visibilityCondition': {'$ref': '#/$defs/VisibilityCondition', 'description': 'Optional. If set, this widget is rendered only when the condition is evaluated to true.'}}, 'description': 'Widget contains a single dashboard component and configuration of how to present the component in the dashboard.'}, 'DataSet': {'type': 'object', 'properties': {'sort': {'type': 'array', 'items': {'$ref': '#/$defs/ColumnSortingOptions'}, 'description': 'Optional. A collection of sort options, affects the order of the data and legend.'}, 'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'Optional. A collection of measures.'}, 'plotType': {'enum': ['PLOT_TYPE_UNSPECIFIED', 'LINE', 'STACKED_AREA', 'STACKED_BAR', 'HEATMAP'], 'type': 'string', 'description': 'How this data should be plotted on the chart.', 'x-google-enum-descriptions': ['Plot type is unspecified. The view will default to `LINE`.', 'The data is plotted as a set of lines (one line per series).', 'The data is plotted as a set of filled areas (one area per series), with the areas stacked vertically (the base of each area is the top of its predecessor, and the base of the first area is the x-axis). Since the areas do not overlap, each is filled with a different opaque color.', 'The data is plotted as a set of rectangular boxes (one box per series), with the boxes stacked vertically (the base of each box is the top of its predecessor, and the base of the first box is the x-axis). Since the boxes do not overlap, each is filled with a different opaque color.', 'The data is plotted as a heatmap. The series being plotted must have a `DISTRIBUTION` value type. The value of each bucket in the distribution is displayed as a color. This type is not currently available in the Stackdriver Monitoring application.']}, 'breakdowns': {'type': 'array', 'items': {'$ref': '#/$defs/Breakdown'}, 'description': 'Optional. The collection of breakdowns to be applied to the dataset.'}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/Dimension'}, 'description': 'Optional. A collection of dimension columns.'}, 'targetAxis': {'enum': ['TARGET_AXIS_UNSPECIFIED', 'Y1', 'Y2'], 'type': 'string', 'description': 'Optional. The target axis to use for plotting the metric.', 'x-google-enum-descriptions': ['The target axis was not specified. Defaults to Y1.', 'The y_axis (the right axis of chart).', 'The y2_axis (the left axis of chart).']}, 'legendTemplate': {'type': 'string', 'description': "A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value."}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. Fields for querying time series data from the Stackdriver metrics API.'}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals. For PromQL queries, this field is used to set the minimum interval for the query `step`, controlling data granularity. Larger values can improve performance on long time ranges. See Querying Basics and Range Queries for more details on the PromQL `step`. [1]: https://prometheus.io/docs/prometheus/latest/querying/basics/ [2]: https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries'}}, 'description': 'Groups a time series query definition with charting options.'}, 'Measure': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Required. The column name within in the dataset used for the measure.'}, 'aggregationFunction': {'$ref': '#/$defs/AggregationFunction', 'description': 'Required. The aggregation function applied to the input column. This must not be set to `"none"` unless binning is disabled on the dimension. The aggregation function is used to group points on the dimension bins.'}}, 'description': 'A chart measure. Measures represent a measured property in your chart data such as rainfall in inches, number of units sold, revenue gained, etc.'}, 'Treemap': {'type': 'object', 'properties': {'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/TreemapDataSet'}, 'description': "Required. The collection of datasets used to construct and populate the treemap. For the rendered treemap rectangles: - Color is determined by the aggregated value for each grouping. - Size is proportional to the count of time series aggregated within that rectangle's segment."}, 'treemapHierarchy': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required. Ordered labels representing the hierarchical treemap structure.'}}, 'description': 'A widget that displays hierarchical data as a treemap.'}, 'XyChart': {'type': 'object', 'properties': {'xAxis': {'$ref': '#/$defs/Axis', 'description': 'The properties applied to the x-axis.'}, 'yAxis': {'$ref': '#/$defs/Axis', 'description': 'The properties applied to the y-axis.'}, 'y2Axis': {'$ref': '#/$defs/Axis', 'description': 'The properties applied to the y2-axis.'}, 'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/DataSet'}, 'description': 'Required. The data displayed in this chart.'}, 'thresholds': {'type': 'array', 'items': {'$ref': '#/$defs/Threshold'}, 'description': 'Threshold lines drawn horizontally across the chart.'}, 'chartOptions': {'$ref': '#/$defs/ChartOptions', 'description': 'Display options for the chart.'}, 'timeshiftDuration': {'type': 'string', 'format': 'google-duration', 'description': 'The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.'}}, 'description': 'A chart that displays data on a 2D (X and Y axes) plane.'}, 'Interval': {'type': 'object', 'properties': {'endTime': {'type': 'string', 'format': 'date-time', 'description': 'Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.'}, 'startTime': {'type': 'string', 'format': 'date-time', 'description': 'Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.'}}, 'description': 'Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.'}, 'PieChart': {'type': 'object', 'properties': {'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/PieChartDataSet'}, 'description': "Required. The queries for the chart's data."}, 'chartType': {'enum': ['PIE_CHART_TYPE_UNSPECIFIED', 'PIE', 'DONUT'], 'type': 'string', 'description': 'Required. Indicates the visualization type for the PieChart.', 'x-google-enum-descriptions': ['The zero value. No type specified. Do not use.', 'A Pie type PieChart.', 'Similar to PIE, but the DONUT type PieChart has a hole in the middle.']}, 'showLabels': {'type': 'boolean', 'description': "Optional. Indicates whether or not the pie chart should show slices' labels"}}, 'description': 'A widget that displays timeseries data as a pie or a donut.'}, 'Breakdown': {'type': 'object', 'properties': {'limit': {'type': 'integer', 'format': 'int32', 'description': 'Required. A limit to the number of breakdowns. If set to zero then all possible breakdowns are applied. The list of breakdowns is dependent on the value of the `sort_order` field.'}, 'column': {'type': 'string', 'description': 'Required. The name of the column in the dataset containing the breakdown values.'}, 'sortOrder': {'enum': ['SORT_ORDER_UNSPECIFIED', 'SORT_ORDER_NONE', 'SORT_ORDER_ASCENDING', 'SORT_ORDER_DESCENDING'], 'type': 'string', 'description': 'Required. The sort order is applied to the values of the breakdown column.', 'x-google-enum-descriptions': ['An unspecified sort order. This option is invalid when sorting is required.', 'No sorting is applied.', 'The lowest-valued entries are selected first.', 'The highest-valued entries are selected first.']}, 'aggregationFunction': {'$ref': '#/$defs/AggregationFunction', 'description': 'Required. The Aggregation function is applied across all data in each breakdown created.'}}, 'description': 'Preview: A breakdown is an aggregation applied to the measures over a specified column. A breakdown can result in multiple series across a category for the provided measure. This is a preview feature and may be subject to change before final release.'}, 'Dimension': {'type': 'object', 'properties': {'xMax': {'type': 'number', 'format': 'double', 'description': 'The maximum value for the x-axis.'}, 'xMin': {'type': 'number', 'format': 'double', 'description': 'The minimum value for the x-axis.'}, 'column': {'type': 'string', 'description': 'Required. For widgets that use SQL queries, set the value to the name of the column in the results table whose data is charted. For a histogram that uses a time series query, set the value of this field to `metric_value`.'}, 'sortOrder': {'enum': ['SORT_ORDER_UNSPECIFIED', 'SORT_ORDER_NONE', 'SORT_ORDER_ASCENDING', 'SORT_ORDER_DESCENDING'], 'type': 'string', 'description': 'The sort order applied to the sort column.', 'x-google-enum-descriptions': ['An unspecified sort order. This option is invalid when sorting is required.', 'No sorting is applied.', 'The lowest-valued entries are selected first.', 'The highest-valued entries are selected first.']}, 'columnType': {'type': 'string', 'description': 'Optional. The type of the dimension column. This is relevant only if one of the bin_size fields is set. If it is empty, the type TIMESTAMP or INT64 will be assumed based on which bin_size field is set. If populated, this should be set to one of the following types: DATE, TIME, DATETIME, TIMESTAMP, BIGNUMERIC, INT64, NUMERIC, FLOAT64.'}, 'sortColumn': {'type': 'string', 'description': 'The column name to sort on for binning. This column can be the same column as this dimension or any other column used as a measure in the results. If `sort_order` is set to `NONE`, then this value is not used.'}, 'maxBinCount': {'type': 'integer', 'format': 'int32', 'description': 'For widgets that use SQL queries, the limit to the number of bins to generate. When 0 is specified, the maximum count is not enforced. For a histogram that uses a time series query, the exact number of bins to generate. If not specified or the value is 0, then the histogram determines the number of bins to use.'}, 'timeBinSize': {'type': 'string', 'format': 'google-duration', 'description': '`time_bin_size` is used when the data type of the specified dimension is a time type and the bin size is determined by a time duration. If `column_type` is `DATE`, this must be a whole value multiple of 1 day. If `column_type` is `TIME`, this must be less than or equal to 24 hours.'}, 'floatBinSize': {'type': 'number', 'format': 'double', 'description': 'Optional. `float_bin_size` is used when the column type used for a dimension is a floating point numeric column.'}, 'numericBinSize': {'type': 'integer', 'format': 'int32', 'description': '`numeric_bin_size` is used when the column type used for a dimension is numeric or string. If the `column` field is set to `metric_value`, then `numericBinSize` overrides `maxBinCount`.'}}, 'description': 'A chart dimension. Dimensions are a structured label, class, or category for a set of measurements in your data.'}, 'GaugeView': {'type': 'object', 'properties': {'lowerBound': {'type': 'number', 'format': 'double', 'description': 'The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.'}, 'upperBound': {'type': 'number', 'format': 'double', 'description': 'The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.'}}, 'description': "A gauge chart shows where the current value sits within a pre-defined range. The upper and lower bounds should define the possible range of values for the scorecard's query (inclusive)."}, 'LogsPanel': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.'}, 'resourceNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The names of logging resources to collect logs for. Currently projects and storage views are supported. If empty, the widget will default to the host project.'}}, 'description': 'A widget that displays a stream of log.'}, 'Parameter': {'type': 'object', 'properties': {'intValue': {'type': 'string', 'format': 'int64', 'description': 'An integer parameter value.'}, 'doubleValue': {'type': 'number', 'format': 'double', 'description': 'A floating-point parameter value.'}}, 'description': 'Preview: Parameter value applied to the aggregation function. This is a preview feature and may be subject to change before final release.'}, 'RatioPart': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.'}, 'aggregation': {'$ref': '#/$defs/Aggregation', 'description': 'By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.'}}, 'description': 'Describes a query to build the numerator or denominator of a TimeSeriesFilterRatio.'}, 'RowLayout': {'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'$ref': '#/$defs/Row'}, 'description': 'The rows of content to display.'}}, 'description': 'A simplified layout that divides the available space into rows and arranges a set of widgets horizontally in each row.'}, 'Scorecard': {'type': 'object', 'properties': {'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'Optional. A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.'}, 'blankView': {'$ref': '#/$defs/Empty', 'description': 'Will cause the `Scorecard` to show only the value, with no indicator to its value relative to its thresholds.'}, 'gaugeView': {'$ref': '#/$defs/GaugeView', 'description': 'Will cause the scorecard to show a gauge chart.'}, 'breakdowns': {'type': 'array', 'items': {'$ref': '#/$defs/Breakdown'}, 'description': 'Optional. The collection of breakdowns to be applied to the dataset. A breakdown is a way to slice the data. For example, you can break down the data by region.'}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/Dimension'}, 'description': 'Optional. A dimension is a structured label, class, or category for a set of measurements in your data.'}, 'thresholds': {'type': 'array', 'items': {'$ref': '#/$defs/Threshold'}, 'description': "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.) As an example, consider a scorecard with the following four thresholds: ``` { value: 90, category: 'DANGER', trigger: 'ABOVE', }, { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } ``` Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state."}, 'sparkChartView': {'$ref': '#/$defs/SparkChartView', 'description': 'Will cause the scorecard to show a spark chart.'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. Fields for querying time series data from the Stackdriver metrics API.'}}, 'description': 'A widget showing the latest value of a metric, and how this value relates to one or more thresholds.'}, 'TextStyle': {'type': 'object', 'properties': {'padding': {'enum': ['PADDING_SIZE_UNSPECIFIED', 'P_EXTRA_SMALL', 'P_SMALL', 'P_MEDIUM', 'P_LARGE', 'P_EXTRA_LARGE'], 'type': 'string', 'description': 'The amount of padding around the widget', 'x-google-enum-descriptions': ['No padding size specified, will default to P_EXTRA_SMALL', 'Extra small padding', 'Small padding', 'Medium padding', 'Large padding', 'Extra large padding']}, 'fontSize': {'enum': ['FONT_SIZE_UNSPECIFIED', 'FS_EXTRA_SMALL', 'FS_SMALL', 'FS_MEDIUM', 'FS_LARGE', 'FS_EXTRA_LARGE'], 'type': 'string', 'description': 'Font sizes for both the title and content. The title will still be larger relative to the content.', 'x-google-enum-descriptions': ['No font size specified, will default to FS_LARGE', 'Extra small font size', 'Small font size', 'Medium font size', 'Large font size', 'Extra large font size']}, 'textColor': {'type': 'string', 'description': 'The text color as a hex string. "#RRGGBB" or "#RGB"'}, 'backgroundColor': {'type': 'string', 'description': 'The background color as a hex string. "#RRGGBB" or "#RGB"'}, 'pointerLocation': {'enum': ['POINTER_LOCATION_UNSPECIFIED', 'PL_TOP', 'PL_RIGHT', 'PL_BOTTOM', 'PL_LEFT', 'PL_TOP_LEFT', 'PL_TOP_RIGHT', 'PL_RIGHT_TOP', 'PL_RIGHT_BOTTOM', 'PL_BOTTOM_RIGHT', 'PL_BOTTOM_LEFT', 'PL_LEFT_BOTTOM', 'PL_LEFT_TOP'], 'type': 'string', 'description': 'The pointer location for this widget (also sometimes called a "tail")', 'x-google-enum-descriptions': ['No visual pointer', 'Placed in the middle of the top of the widget', 'Placed in the middle of the right side of the widget', 'Placed in the middle of the bottom of the widget', 'Placed in the middle of the left side of the widget', 'Placed on the left side of the top of the widget', 'Placed on the right side of the top of the widget', 'Placed on the top of the right side of the widget', 'Placed on the bottom of the right side of the widget', 'Placed on the right side of the bottom of the widget', 'Placed on the left side of the bottom of the widget', 'Placed on the bottom of the left side of the widget', 'Placed on the top of the left side of the widget']}, 'verticalAlignment': {'enum': ['VERTICAL_ALIGNMENT_UNSPECIFIED', 'V_TOP', 'V_CENTER', 'V_BOTTOM'], 'type': 'string', 'description': 'The vertical alignment of both the title and content', 'x-google-enum-descriptions': ['No vertical alignment specified, will default to V_TOP', 'Top-align', 'Center-align', 'Bottom-align']}, 'horizontalAlignment': {'enum': ['HORIZONTAL_ALIGNMENT_UNSPECIFIED', 'H_LEFT', 'H_CENTER', 'H_RIGHT'], 'type': 'string', 'description': 'The horizontal alignment of both the title and content', 'x-google-enum-descriptions': ['No horizontal alignment specified, will default to H_LEFT', 'Left-align', 'Center-align', 'Right-align']}}, 'description': 'Properties that determine how the title and content are styled'}, 'Threshold': {'type': 'object', 'properties': {'color': {'enum': ['COLOR_UNSPECIFIED', 'YELLOW', 'RED'], 'type': 'string', 'description': 'The state color for this threshold. Color is not allowed in a XyChart.', 'x-google-enum-descriptions': ['Color is unspecified. Not allowed in well-formed requests.', 'Crossing the threshold is "concerning" behavior.', 'Crossing the threshold is "emergency" behavior.']}, 'label': {'type': 'string', 'description': 'A label for the threshold.'}, 'value': {'type': 'number', 'format': 'double', 'description': 'The value of the threshold. The value should be defined in the native scale of the metric.'}, 'direction': {'enum': ['DIRECTION_UNSPECIFIED', 'ABOVE', 'BELOW'], 'type': 'string', 'description': 'The direction for the current threshold. Direction is not allowed in a XyChart.', 'x-google-enum-descriptions': ['Not allowed in well-formed requests.', 'The threshold will be considered crossed if the actual value is above the threshold value.', 'The threshold will be considered crossed if the actual value is below the threshold value.']}, 'targetAxis': {'enum': ['TARGET_AXIS_UNSPECIFIED', 'Y1', 'Y2'], 'type': 'string', 'description': 'The target axis to use for plotting the threshold. Target axis is not allowed in a Scorecard.', 'x-google-enum-descriptions': ['The target axis was not specified. Defaults to Y1.', 'The y_axis (the right axis of chart).', 'The y2_axis (the left axis of chart).']}}, 'description': 'Defines a threshold for categorizing time series values.'}, 'TimeRange': {'type': 'object', 'properties': {'absoluteWindow': {'$ref': '#/$defs/Interval', 'description': 'Optional. Represents a time range with absolute start and end times. The start time is inclusive, and the end time is exclusive.'}, 'relativeDuration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Specifies the duration used to shift the data relative to current time as the end time. The duration must be positive.'}}, 'description': 'Represents a time range.'}, 'AlertChart': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required. The resource name of the alert policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]'}}, 'description': 'A chart that displays alert policy data.'}, 'GridLayout': {'type': 'object', 'properties': {'columns': {'type': 'string', 'format': 'int64', 'description': "The number of columns into which the view's width is divided. If omitted or set to zero, a system default will be used while rendering."}, 'widgets': {'type': 'array', 'items': {'$ref': '#/$defs/Widget'}, 'description': 'The informational elements that are arranged into the columns row-first.'}}, 'description': 'A basic layout divides the available space into vertical columns of equal width and arranges a list of widgets using a row-first strategy.'}, 'TraceQuery': {'type': 'object', 'properties': {'spanFilters': {'$ref': '#/$defs/SpanFilters', 'description': 'First version of span filtering that we will support. Required.'}, 'spanDataValue': {'enum': ['SPAN_DATA_VALUE_UNSPECIFIED', 'SPAN_COUNT', 'SPAN_DURATION', 'SPAN_DURATION_PERCENTILES'], 'type': 'string', 'description': 'The type of span data value to be displayed on the chart. Required.', 'x-google-enum-descriptions': ['We are required to have an UNSPECIFIED value for enums. This should not be used in practice.', 'Span count data value', 'Span duration data value', 'Span duration percentiles data value']}, 'resourceContainer': {'type': 'string', 'description': "Optional. The resource name of the project or Trace scope to fetch data from. If empty, the widget will default to the project's default Trace scope. If scope cannot be determined, then we fallback to the current project. Optional."}}, 'description': 'LINT.IfChange Preview: Query for traces. This is a preview feature and may be subject to change before final release.'}, 'Aggregation': {'type': 'object', 'properties': {'groupByFields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.'}, 'alignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored. The maximum value of the `alignment_period` is 2 years, or 104 weeks.'}, 'perSeriesAligner': {'enum': ['ALIGN_NONE', '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'], 'type': 'string', 'description': 'An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No alignment. Raw data is returned. Not valid if cross-series reduction is requested. The `value_type` of the result is the same as the `value_type` of the input.', 'Align and convert to DELTA. The output is `delta = y1 - y0`. This alignment is valid for CUMULATIVE and `DELTA` metrics. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align and convert to a rate. The result is computed as `rate = (y1 - y0)/(t1 - t0)`, or "delta over time". Think of this aligner as providing the slope of the line that passes through the value at the start and at the end of the `alignment_period`. This aligner is valid for `CUMULATIVE` and `DELTA` metrics with numeric values. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The output is a `GAUGE` metric with `value_type` `DOUBLE`. If, by "rate", you mean "percentage change", see the `ALIGN_PERCENT_CHANGE` aligner instead.', 'Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for `GAUGE` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for `GAUGE` metrics. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the minimum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the maximum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the mean value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is `DOUBLE`.', 'Align the time series by returning the number of values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric or Boolean values. The `value_type` of the aligned result is `INT64`.', 'Align the time series by returning the sum of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric and distribution values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the output is `DOUBLE`.', 'Align the time series by returning the number of `True` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the number of `False` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the ratio of the number of `True` values to the total number of values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align and convert to a percentage change. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. This alignment returns `((current - previous)/previous) * 100`, where the value of `previous` is determined based on the `alignment_period`. If the values of `current` and `previous` are both 0, then the returned value is 0. If only `previous` is 0, the returned value is infinity. A 10-minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very short-lived spikes. The moving mean is only applicable for data whose values are `>= 0`. Any values `< 0` are treated as a missing datapoint, and are ignored. While `DELTA` metrics are accepted by this alignment, special care should be taken that the values for the metric will always be positive. The output is a `GAUGE` metric with `value_type` `DOUBLE`.']}, 'crossSeriesReducer': {'enum': ['REDUCE_NONE', 'REDUCE_MEAN', 'REDUCE_MIN', 'REDUCE_MAX', 'REDUCE_SUM', 'REDUCE_STDDEV', 'REDUCE_COUNT', 'REDUCE_COUNT_TRUE', 'REDUCE_COUNT_FALSE', 'REDUCE_FRACTION_TRUE', 'REDUCE_PERCENTILE_99', 'REDUCE_PERCENTILE_95', 'REDUCE_PERCENTILE_50', 'REDUCE_PERCENTILE_05'], 'type': 'string', 'description': 'The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No cross-time series reduction. The output of the `Aligner` is returned.', 'Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The `value_type` of the output is DOUBLE.', 'Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the sum across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric and distribution values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric or distribution values. The `value_type` of the output is `DOUBLE`.', 'Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of numeric, Boolean, distribution, and string `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `True`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `False`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the ratio of the number of `True`-valued data points to the total number of data points for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Reduce by computing the [99th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [95th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [50th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [5th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.']}}, 'description': 'Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is _aligned_ to the same time interval boundaries, then the set of time series is optionally _reduced_ in number. Alignment consists of applying the `per_series_aligner` operation to each time series after its data has been divided into regular `alignment_period` time intervals. This process takes _all_ of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period. Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a `cross_series_reducer` to all the time series, optionally sorting the time series into subsets with `group_by_fields`, and applying the reducer to each subset. The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see [Filtering and aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).'}, 'SpanFilters': {'type': 'object', 'properties': {'kinds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the kinds in the list. Multiple values will be OR'd together."}, 'status': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the statuses in the list. Multiple values will be OR'd together."}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the services in the list. Multiple values will be OR'd together."}, 'attributes': {'type': 'array', 'items': {'$ref': '#/$defs/SpanAttributeFilter'}, 'description': "Optional. List of span attribute filters. Each SpanAttributeFilter key must be unique. Multiple attribute filters will be AND'd together."}, 'isRootSpan': {'type': 'boolean', 'description': 'Optional. Filters for root spans only if set to true. A root span is a span without a defined parent span ID.'}, 'maxDuration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Filtering for spans with a maximum duration.'}, 'minDuration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Filtering for spans with a minimum duration.'}, 'displayNames': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the span display names in the list. Multiple values will be OR'd together."}, 'apphubServices': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Filtering for spans containing one of the Apphub service IDs in the list. Multiple values will be OR\'d together. Example: ["service-id1", "service-id2"]'}, 'applicationIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the Apphub Application IDs in the list. Multiple values will be OR'd together."}, 'apphubWorkloads': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Filtering for spans containing one of the Apphub workload IDs in the list. Multiple values will be OR\'d together. Example: ["workload-id1", "workload-id2"]'}}, 'description': 'First version of span filtering that is supported by the Trace component.'}, 'StringArray': {'type': 'object', 'properties': {'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The values of the array'}}, 'description': 'An array of strings'}, 'ChartOptions': {'type': 'object', 'properties': {'mode': {'enum': ['MODE_UNSPECIFIED', 'COLOR', 'X_RAY', 'STATS'], 'type': 'string', 'description': 'The chart mode.', 'x-google-enum-descriptions': ['Mode is unspecified. The view will default to `COLOR`.', 'The chart distinguishes data series using different color. Line colors may get reused when there are many lines in the chart.', 'The chart uses the Stackdriver x-ray mode, in which each data set is plotted using the same semi-transparent color.', 'The chart displays statistics such as average, median, 95th percentile, and more.']}, 'displayHorizontal': {'type': 'boolean', 'description': 'Preview: Configures whether the charted values are shown on the horizontal or vertical axis. By default, values are represented the vertical axis. This is a preview feature and may be subject to change before final release.'}}, 'description': 'Options to control visual rendering of a chart.'}, 'ColumnLayout': {'type': 'object', 'properties': {'columns': {'type': 'array', 'items': {'$ref': '#/$defs/Column'}, 'description': 'The columns of content to display.'}}, 'description': 'A simplified layout that divides the available space into vertical columns and arranges a set of widgets vertically in each column.'}, 'IncidentList': {'type': 'object', 'properties': {'policyNames': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. A list of alert policy names to filter the incident list by. Don't include the project ID prefix in the policy name. For example, use `alertPolicies/utilization`."}, 'monitoredResources': {'type': 'array', 'items': {'$ref': '#/$defs/MonitoredResource'}, 'description': "Optional. The monitored resource for which incidents are listed. The resource doesn't need to be fully specified. That is, you can specify the resource type but not the values of the resource labels. The resource type and labels are used for filtering."}}, 'description': 'A widget that displays a list of incidents'}, 'MosaicLayout': {'type': 'object', 'properties': {'tiles': {'type': 'array', 'items': {'$ref': '#/$defs/Tile'}, 'description': 'The tiles to display.'}, 'columns': {'type': 'integer', 'format': 'int32', 'description': 'The number of columns in the mosaic grid. The number of columns must be between 1 and 48, inclusive.'}}, 'description': 'A mosaic layout divides the available space into a grid of blocks, and overlays the grid with tiles. Unlike `GridLayout`, tiles may span multiple grid blocks and can be placed at arbitrary locations in the grid.'}, 'TableDataSet': {'type': 'object', 'properties': {'tableTemplate': {'type': 'string', 'description': 'Optional. A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label\'s value i.e. "${resource.labels.project_id}."'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. Fields for querying time series data from the Stackdriver metrics API.'}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.'}, 'tableDisplayOptions': {'$ref': '#/$defs/TableDisplayOptions', 'description': 'Optional. Table display options for configuring how the table is rendered.'}}, 'description': 'Groups a time series query definition with table options.'}, 'FilterControl': {'type': 'object', 'properties': {'templateVariable': {'type': 'string', 'description': 'Name of the template variable the widget affects.'}}, 'description': 'A widget that displays an input field to change the value of a template variable.'}, 'SectionHeader': {'type': 'object', 'properties': {'subtitle': {'type': 'string', 'description': 'The subtitle of the section'}, 'dividerBelow': {'type': 'boolean', 'description': 'Whether to insert a divider below the section in the table of contents'}}, 'description': 'A widget that defines a new section header. Sections populate a table of contents and allow easier navigation of long-form content.'}, 'ColumnSettings': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Required. The id of the column.'}, 'visible': {'type': 'boolean', 'description': 'Required. Whether the column should be visible on page load.'}, 'alignment': {'enum': ['CELL_ALIGNMENT_UNSPECIFIED', 'LEFT', 'CENTER', 'RIGHT'], 'type': 'string', 'description': 'Optional. Whether the column should be left / middle / right aligned', 'x-google-enum-descriptions': ['No horizontal alignment specified; fall back to the default behavior. Label values are left aligned. Numeric values are right aligned.', 'Left-align', 'Center-align', 'Right-align']}, 'thresholds': {'type': 'array', 'items': {'$ref': '#/$defs/Threshold'}, 'description': "Optional. The thresholds used to determine how the table cell should be rendered given the time series' current value."}, 'displayName': {'type': 'string', 'description': 'Optional. Display name of the column'}}, 'description': "The persistent settings for a table's columns."}, 'SparkChartView': {'type': 'object', 'properties': {'sparkChartType': {'enum': ['SPARK_CHART_TYPE_UNSPECIFIED', 'SPARK_LINE', 'SPARK_BAR'], 'type': 'string', 'description': 'Required. The type of sparkchart to show in this chartView.', 'x-google-enum-descriptions': ['Not allowed in well-formed requests.', 'The sparkline will be rendered as a small line chart.', 'The sparkbar will be rendered as a small bar chart.']}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint. For PromQL queries, this field is used to set the minimum interval for the query `step`, controlling data granularity. Larger values can improve performance on long time ranges. See Querying Basics and Range Queries for more details on the PromQL `step`. [1]: https://prometheus.io/docs/prometheus/latest/querying/basics/ [2]: https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries'}}, 'description': "A sparkChart is a small chart suitable for inclusion in a table-cell or inline in text. This message contains the configuration for a sparkChart to show up on a Scorecard, showing recent trends of the scorecard's timeseries."}, 'TreemapDataSet': {'type': 'object', 'properties': {'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'Optional. A collection of measures. A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.'}, 'breakdowns': {'type': 'array', 'items': {'$ref': '#/$defs/Breakdown'}, 'description': 'Optional. The collection of breakdowns to be applied to the dataset. A breakdown is a way to slice the data. For example, you can break down the data by region.'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. The query that fetches the relevant data. See `google.monitoring.dashboard.v1.TimeSeriesQuery`'}}, 'description': 'The data represented by the treemap. Needs to include the data itself, plus rules on how to organize it hierarchically.'}, 'DashboardFilter': {'type': 'object', 'properties': {'labelKey': {'type': 'string', 'description': 'Optional. The key for the label. This must be omitted if the filter_type is VALUE_ONLY but is required otherwise.'}, 'valueType': {'enum': ['VALUE_TYPE_UNSPECIFIED', 'STRING', 'STRING_ARRAY'], 'type': 'string', 'description': 'The type of the filter value. If value_type is not provided, it will be inferred from the default_value. If neither value_type nor default_value is provided, value_type will be set to STRING by default.', 'x-google-enum-descriptions': ['Value type is unspecified', 'String type', 'String array type']}, 'filterType': {'enum': ['FILTER_TYPE_UNSPECIFIED', 'RESOURCE_LABEL', 'METRIC_LABEL', 'USER_METADATA_LABEL', 'SYSTEM_METADATA_LABEL', 'GROUP', 'VALUE_ONLY'], 'type': 'string', 'description': 'The specified filter type', 'x-google-enum-descriptions': ['Filter type is unspecified. This is not valid in a well-formed request.', 'Filter on a resource label value', 'Filter on a metrics label value', 'Filter on a user metadata label value', 'Filter on a system metadata label value', 'Filter on a group id', 'Filter that only contains a value. The label_key field must be unset for filters of this type.']}, 'stringArray': {'$ref': '#/$defs/StringArray', 'description': 'A list of possible string values for the filter'}, 'stringValue': {'type': 'string', 'description': 'A variable-length string value. If this field is set, value_type must be set to STRING or VALUE_TYPE_UNSPECIFIED'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'A query to run to fetch possible values for the filter. Only OpsAnalyticsQueries are supported'}, 'stringArrayValue': {'$ref': '#/$defs/StringArray', 'description': 'An array of variable-length string values. If this field is set, value_type must be set to STRING_ARRAY or VALUE_TYPE_UNSPECIFIED'}, 'templateVariable': {'type': 'string', 'description': 'The placeholder text that can be referenced in a filter string or MQL query. If omitted, the dashboard filter will be applied to all relevant widgets in the dashboard.'}}, 'description': 'A filter to reduce the amount of data charted in relevant widgets.'}, 'EventAnnotation': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'string filtering the events - event dependant. Example values: "resource.labels.pod_name = \'pod-1\'" "protoPayload.authenticationInfo.principalEmail=\'user@example.com\'"'}, 'enabled': {'type': 'boolean', 'description': 'Whether or not to show the events on the dashboard by default'}, 'eventType': {'enum': ['EVENT_TYPE_UNSPECIFIED', 'GKE_WORKLOAD_DEPLOYMENT', 'GKE_POD_CRASH', 'GKE_POD_UNSCHEDULABLE', 'GKE_CONTAINER_CREATION_FAILED', 'GKE_CLUSTER_CREATE_DELETE', 'GKE_CLUSTER_UPDATE', 'GKE_NODE_POOL_UPDATE', 'GKE_CLUSTER_AUTOSCALER', 'GKE_POD_AUTOSCALER', 'VM_TERMINATION', 'VM_GUEST_OS_ERROR', 'VM_START_FAILED', 'MIG_UPDATE', 'MIG_AUTOSCALER', 'CLOUD_RUN_DEPLOYMENT', 'CLOUD_SQL_FAILOVER', 'CLOUD_SQL_START_STOP', 'CLOUD_SQL_STORAGE', 'UPTIME_CHECK_FAILURE', 'CLOUD_ALERTING_ALERT', 'SERVICE_HEALTH_INCIDENT', 'SAP_BACKINT', 'SAP_AVAILABILITY', 'SAP_OPERATIONS', 'INTERCONNECT_MAINTENANCE_STARTED', 'INTERCONNECT_MAINTENANCE_COMPLETED', 'VPN_TRAFFIC_SELECTOR_NARROWING', 'VPN_MAINTENANCE'], 'type': 'string', 'description': 'The type of event to display.', 'x-google-enum-descriptions': ['No event type specified.', 'Patch/update of GKE workload.', 'Crash events for a GKE Pod.', 'Scheduling failures for GKE Pods.', 'Failure to create a GKE container.', 'Create/delete of a GKE cluster.', 'Update of a GKE cluster.', 'Update of a GKE node pool.', 'GKE cluster autoscaler event.', 'GKE pod autoscaler event.', 'Termination of a virtual machine.', 'Guest OS error on a virtual machine.', 'Start failure on a virtual machine.', 'Update of a managed instance group.', 'Autoscaler event for a managed instance group.', 'New deployment of a Cloud Run service.', 'Failover of a Cloud SQL instance.', 'Start/stop of a Cloud SQL instance.', 'Storage event for a Cloud SQL instance.', 'Failure of a Cloud Monitoring uptime check.', 'Alerts from Cloud Alerting', 'Incidents from Service Health', 'Agent for SAP Backint related events.', 'Agent for SAP availability related events.', 'Agent for SAP operations related events.', 'Interconnect maintenance started event.', 'Interconnect maintenance completed event.', 'VPN traffic selector narrowing event.', 'VPN maintenance event.']}, 'displayName': {'type': 'string', 'description': 'Solely for UI display. Should not be used programmatically.'}, 'resourceNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Per annotation level override for the names of logging resources to search for events. Currently only projects are supported. If both this field and the per annotation field is empty, it will default to the host project. Limit: 50 projects. For example: “projects/another-project-id”'}}, 'description': 'Annotation configuration for one event type on a dashboard'}, 'PieChartDataSet': {'type': 'object', 'properties': {'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.'}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/Dimension'}, 'description': 'A dimension is a structured label, class, or category for a set of measurements in your data.'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. The query for the PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`.'}, 'sliceNameTemplate': {'type': 'string', 'description': "Optional. A template for the name of the slice. This name will be displayed in the legend and the tooltip of the pie chart. It replaces the auto-generated names for the slices. For example, if the template is set to `${resource.labels.zone}`, the zone's value will be used for the name instead of the default name."}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.'}}, 'description': 'Groups a time series query definition.'}, 'SingleViewGroup': {'type': 'object', 'properties': {'displayType': {'enum': ['DISPLAY_TYPE_UNSPECIFIED', 'DROPDOWN', 'TAB'], 'type': 'string', 'description': 'Optional. Determines how the widget selector will be displayed.', 'x-google-enum-descriptions': ['Display type is not specified, defaults to DROPDOWN.', 'Renders the widget selector as a dropdown.', 'Renders the widget selector as a tab list.']}}, 'description': 'A widget that groups the other widgets by using a dropdown menu. All widgets that are within the area spanned by the grouping widget are considered member widgets.'}, 'TimeSeriesQuery': {'type': 'object', 'properties': {'traceQuery': {'$ref': '#/$defs/TraceQuery', 'description': 'Optional. Preview: Query for traces. This is a preview feature and may be subject to change before final release.'}, 'unitOverride': {'type': 'string', 'description': 'The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.'}, 'prometheusQuery': {'type': 'string', 'description': 'A query used to fetch time series with PromQL.'}, 'timeSeriesFilter': {'$ref': '#/$defs/TimeSeriesFilter', 'description': 'Filter parameters to fetch time series.'}, 'opsAnalyticsQuery': {'$ref': '#/$defs/OpsAnalyticsQuery', 'description': 'Preview: A query used to fetch a time series, category series, or numeric series with SQL. This is a preview feature and may be subject to change before final release.'}, 'outputFullDuration': {'type': 'boolean', 'description': "Optional. If set, Cloud Monitoring will treat the full query duration as the alignment period so that there will be only 1 output value. *Note: This could override the configured alignment period except for the cases where a series of data points are expected, like - XyChart - Scorecard's spark chart"}, 'timeSeriesFilterRatio': {'$ref': '#/$defs/TimeSeriesFilterRatio', 'description': 'Parameters to fetch a ratio between two time series filters.'}, 'timeSeriesQueryLanguage': {'type': 'string', 'description': 'A query used to fetch time series with MQL.'}}, 'description': 'TimeSeriesQuery collects the set of supported methods for querying time series data from the Stackdriver metrics API.'}, 'TimeSeriesTable': {'type': 'object', 'properties': {'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/TableDataSet'}, 'description': 'Required. The data displayed in this table.'}, 'columnSettings': {'type': 'array', 'items': {'$ref': '#/$defs/ColumnSettings'}, 'description': 'Optional. The list of the persistent column settings for the table.'}, 'metricVisualization': {'enum': ['METRIC_VISUALIZATION_UNSPECIFIED', 'NUMBER', 'BAR'], 'type': 'string', 'description': 'Optional. Store rendering strategy', 'x-google-enum-descriptions': ['Unspecified state', 'Default text rendering', 'Horizontal bar rendering']}}, 'description': 'A table that displays time series data.'}, 'CollapsibleGroup': {'type': 'object', 'properties': {'collapsed': {'type': 'boolean', 'description': 'The collapsed state of the widget on first page load.'}}, 'description': 'A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets.'}, 'TimeSeriesFilter': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.'}, 'aggregation': {'$ref': '#/$defs/Aggregation', 'description': 'By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.'}, 'pickTimeSeriesFilter': {'$ref': '#/$defs/PickTimeSeriesFilter', 'description': 'Ranking based time series filter.'}, 'secondaryAggregation': {'$ref': '#/$defs/Aggregation', 'description': 'Apply a second aggregation after `aggregation` is applied.'}, 'statisticalTimeSeriesFilter': {'$ref': '#/$defs/StatisticalTimeSeriesFilter', 'deprecated': True, 'description': 'Statistics based time series filter. Note: This field is deprecated and completely ignored by the API.'}}, 'description': 'A filter that defines a subset of time series data that is displayed in a widget. Time series data is fetched using the [`ListTimeSeries`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) method.'}, 'MonitoredResource': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The monitored resource type. This field must match the `type` field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is `gce_instance`. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).'}, 'labels': {'type': 'object', 'description': 'Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels `"project_id"`, `"instance_id"`, and `"zone"`.', 'additionalProperties': {'type': 'string'}}}, 'description': 'An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The `type` field identifies a MonitoredResourceDescriptor object that describes the resource\'s schema. Information in the `labels` field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for `"gce_instance"` has labels `"project_id"`, `"instance_id"` and `"zone"`: { "type": "gce_instance", "labels": { "project_id": "my-project", "instance_id": "12345678901234", "zone": "us-central1-a" }}'}, 'OpsAnalyticsQuery': {'type': 'object', 'properties': {'sql': {'type': 'string', 'description': 'A SQL query to fetch time series, category series, or numeric series data.'}}, 'description': 'Preview: A query that produces an aggregated response and supporting data. This is a preview feature and may be subject to change before final release.'}, 'AggregationFunction': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The type of aggregation function, must be one of the following: * "none" - no function. * "percentile" - APPROX_QUANTILES() - 1 parameter numeric value * "average" - AVG() * "count" - COUNT() * "count-distinct" - COUNT(DISTINCT) * "count-distinct-approx" - APPROX_COUNT_DISTINCT() * "max" - MAX() * "min" - MIN() * "sum" - SUM()'}, 'parameters': {'type': 'array', 'items': {'$ref': '#/$defs/Parameter'}, 'description': 'Optional. Parameters applied to the aggregation function. Only used for functions that require them.'}}, 'description': 'Preview: An identifier for an aggregation function. Aggregation functions are SQL functions that group or transform data from multiple points to a single point. This is a preview feature and may be subject to change before final release.'}, 'ErrorReportingPanel': {'type': 'object', 'properties': {'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'An identifier of the service, such as the name of the executable, job, or Google App Engine service name. This field is expected to have a low number of values that are relatively stable over time, as opposed to `version`, which can be changed whenever new code is deployed. Contains the service name for error reports extracted from Google App Engine logs or `default` if the App Engine default service is used.'}, 'versions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Represents the source code version that the developer provided, which could represent a version label or a Git SHA-1 hash, for example. For App Engine standard environment, the version is set to the version of the app.'}, 'projectNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The resource name of the Google Cloud Platform project. Written as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}` and `{projectNumber}` can be found in the [Google Cloud console](https://support.google.com/cloud/answer/6158840). Examples: `projects/my-project-123`, `projects/5551234`.'}}, 'description': 'A widget that displays a list of error groups.'}, 'SpanAttributeFilter': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Key of the attribute'}, 'value': {'type': 'array', 'items': {'type': 'string'}, 'description': "List of attribute values for given key. Multiple values will be OR'd together."}}, 'description': 'Span attribute key and list of values to be used for filtering.'}, 'TableDisplayOptions': {'type': 'object', 'properties': {'shownColumns': {'type': 'array', 'items': {'type': 'string'}, 'deprecated': True, 'description': 'Optional. This field is unused and has been replaced by TimeSeriesTable.column_settings'}}, 'description': 'Table display options that can be reused.'}, 'VisibilityCondition': {'type': 'object', 'properties': {'templateVariableCondition': {'$ref': '#/$defs/TemplateVariableCondition', 'description': 'A condition whose evaluation is based on the value of a template variable.'}}, 'description': 'Condition that determines whether the widget should be displayed.'}, 'ColumnSortingOptions': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Optional. Column name to sort data by'}, 'direction': {'enum': ['SORT_ORDER_UNSPECIFIED', 'SORT_ORDER_NONE', 'SORT_ORDER_ASCENDING', 'SORT_ORDER_DESCENDING'], 'type': 'string', 'description': 'Optional. A sorting direction that determines ascending or descending order. This is a legacy field kept for backwards compatibility with table.', 'x-google-enum-descriptions': ['An unspecified sort order. This option is invalid when sorting is required.', 'No sorting is applied.', 'The lowest-valued entries are selected first.', 'The highest-valued entries are selected first.']}}, 'description': "Data structure to storing column's sort strategy"}, 'DashboardAnnotations': {'type': 'object', 'properties': {'eventAnnotations': {'type': 'array', 'items': {'$ref': '#/$defs/EventAnnotation'}, 'description': 'List of annotation configurations for this dashboard. Each entry specifies one event type.'}, 'defaultResourceNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dashboard level defaults for names of logging resources to search for events. Currently only projects are supported. Each individual `EventAnnotation` may have its own overrides. If both this field and the per annotation field is empty, then the scoping project is used. Limit: 50 projects. For example: “projects/some-project-id”'}}, 'description': 'Dashboard-level configuration for annotations'}, 'PickTimeSeriesFilter': {'type': 'object', 'properties': {'interval': {'$ref': '#/$defs/Interval', 'description': 'Select the top N streams/time series within this time interval'}, 'direction': {'enum': ['DIRECTION_UNSPECIFIED', 'TOP', 'BOTTOM'], 'type': 'string', 'description': 'How to use the ranking to select time series that pass through the filter.', 'x-google-enum-descriptions': ['Not allowed. You must specify a different `Direction` if you specify a `PickTimeSeriesFilter`.', 'Pass the highest `num_time_series` ranking inputs.', 'Pass the lowest `num_time_series` ranking inputs.']}, 'numTimeSeries': {'type': 'integer', 'format': 'int32', 'description': 'How many time series to allow to pass through the filter.'}, 'rankingMethod': {'enum': ['METHOD_UNSPECIFIED', 'METHOD_MEAN', 'METHOD_MAX', 'METHOD_MIN', 'METHOD_SUM', 'METHOD_LATEST'], 'type': 'string', 'description': '`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series.', 'x-google-enum-descriptions': ['Not allowed. You must specify a different `Method` if you specify a `PickTimeSeriesFilter`.', 'Select the mean of all values.', 'Select the maximum value.', 'Select the minimum value.', 'Compute the sum of all values.', 'Select the most recent value.']}}, 'description': 'Describes a ranking-based time series filter. Each input time series is ranked with an aligner. The filter will allow up to `num_time_series` time series to pass through it, selecting them based on the relative ranking. For example, if `ranking_method` is `METHOD_MEAN`,`direction` is `BOTTOM`, and `num_time_series` is 3, then the 3 times series with the lowest mean values will pass through the filter.'}, 'TimeSeriesFilterRatio': {'type': 'object', 'properties': {'numerator': {'$ref': '#/$defs/RatioPart', 'description': 'The numerator of the ratio.'}, 'denominator': {'$ref': '#/$defs/RatioPart', 'description': 'The denominator of the ratio.'}, 'pickTimeSeriesFilter': {'$ref': '#/$defs/PickTimeSeriesFilter', 'description': 'Ranking based time series filter.'}, 'secondaryAggregation': {'$ref': '#/$defs/Aggregation', 'description': 'Apply a second aggregation after the ratio is computed.'}, 'statisticalTimeSeriesFilter': {'$ref': '#/$defs/StatisticalTimeSeriesFilter', 'deprecated': True, 'description': 'Statistics based time series filter. Note: This field is deprecated and completely ignored by the API.'}}, 'description': 'A pair of time series filters that define a ratio computation. The output time series is the pair-wise division of each aligned element from the numerator and denominator time series.'}, 'TemplateVariableCondition': {'type': 'object', 'properties': {'comparator': {'enum': ['COMPARATOR_UNSPECIFIED', 'REGEX_FULL_MATCH'], 'type': 'string', 'description': 'Comparator to use to evaluate whether the value of the template variable matches the template_variable_value. For example, if the comparator is REGEX_FULL_MATCH, template_variable_value would contain a regex that is matched against the value of the template variable.', 'x-google-enum-descriptions': ['No comparator specified. Behavior defaults to REGEX_FULL_MATCH.', 'Condition with this comparator evaluates to true when the value of the template variables matches the specified regex.']}, 'templateVariable': {'type': 'string', 'description': 'The template variable whose value is evaluated.'}, 'templateVariableValue': {'type': 'string', 'description': 'The value to compare the template variable to. For example, if the comparator is REGEX_FULL_MATCH, this field should contain a regex.'}}, 'description': 'A condition whose evaluation is based on the value of a template variable.'}, 'StatisticalTimeSeriesFilter': {'type': 'object', 'properties': {'numTimeSeries': {'type': 'integer', 'format': 'int32', 'description': 'How many time series to output.'}, 'rankingMethod': {'enum': ['METHOD_UNSPECIFIED', 'METHOD_CLUSTER_OUTLIER'], 'type': 'string', 'description': '`rankingMethod` is applied to a set of time series, and then the produced value for each individual time series is used to compare a given time series to others. These are methods that cannot be applied stream-by-stream, but rather require the full context of a request to evaluate time series.', 'x-google-enum-descriptions': ['Not allowed in well-formed requests.', 'Compute the outlier score of each stream.']}}, 'description': 'A filter that ranks streams based on their statistical relation to other streams in a request. Note: This field is deprecated and completely ignored by the API.'}}, 'properties': {'etag': {'type': 'string', 'description': '`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. An `etag` is returned in the response to `GetDashboard`, and users are expected to put that etag in the request to `UpdateDashboard` to ensure that their change will be applied to the same version of the Dashboard configuration. The field should not be passed during dashboard creation.'}, 'name': {'type': 'string', 'description': 'Identifier. The resource name of the dashboard.', 'x-google-identifier': True}, 'labels': {'type': 'object', 'description': 'Labels applied to the dashboard', 'additionalProperties': {'type': 'string'}}, 'rowLayout': {'$ref': '#/$defs/RowLayout', 'description': 'The content is divided into equally spaced rows and the widgets are arranged horizontally.'}, 'gridLayout': {'$ref': '#/$defs/GridLayout', 'description': 'Content is arranged with a basic layout that re-flows a simple list of informational elements like widgets or tiles.'}, 'annotations': {'$ref': '#/$defs/DashboardAnnotations', 'description': 'Configuration for event annotations to display on this dashboard.'}, 'displayName': {'type': 'string', 'description': 'Required. The mutable, human-readable name.'}, 'columnLayout': {'$ref': '#/$defs/ColumnLayout', 'description': 'The content is divided into equally spaced columns and the widgets are arranged vertically.'}, 'mosaicLayout': {'$ref': '#/$defs/MosaicLayout', 'description': 'The content is arranged as a grid of tiles, with each content widget occupying one or more grid blocks.'}, 'dashboardFilters': {'type': 'array', 'items': {'$ref': '#/$defs/DashboardFilter'}, 'description': 'Filters to reduce the amount of data charted based on the filter criteria.'}}, 'description': 'A Google Stackdriver dashboard. Dashboards define the content and layout of pages in the Stackdriver web application.'}
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) whose alert policies are to be listed. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policies to be listed are stored. To retrieve a single alerting policy by name, use the GetAlertPolicy operation, instead.'}, 'filter': {'type': 'string', 'description': 'Optional. If provided, this field specifies the criteria that must be met by alert policies to be included in the response. For more details, see [sorting and filtering](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).'}, 'orderBy': {'type': 'string', 'description': 'Optional. A comma-separated list of fields by which to sort the result. Supports the same set of field references as the `filter` field. Entries can be prefixed with a minus sign to sort by the field in descending order. For more details, see [sorting and filtering](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of results to return in a single response.'}, 'pageToken': {'type': 'string', 'description': 'Optional. If this field is not empty then it must contain the `nextPageToken` value returned by a previous call to this method. Using this field causes the method to return more results from the previous method call.'}}, 'description': 'The protocol for the `ListAlertPolicies` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Link': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'The url of a webpage. A url can be templatized by using variables in the path or the query parameters. The total length of a URL should not exceed 2083 characters before and after variable expansion. Example: "https://my_domain.com/playbook?name=${resource.name}"'}, 'displayName': {'type': 'string', 'description': 'A short display name for the link. The display name must not be empty or exceed 63 characters. Example: "playbook".'}}, 'description': 'Links to content such as playbooks, repositories, and other resources.'}, 'Daily': {'type': 'object', 'properties': {'periodicity': {'type': 'integer', 'format': 'int32', 'description': 'Required. The number of days between runs. Must be greater than or equal to 1 day and less than or equal to 31 days.'}, 'executionTime': {'$ref': '#/$defs/TimeOfDay', 'description': 'Optional. The time of day (in UTC) at which the query should run. If left unspecified, the server picks an arbitrary time of day and runs the query at the same time each day.'}}, 'description': 'Used to schedule the query to run every so many days.'}, 'Hourly': {'type': 'object', 'properties': {'periodicity': {'type': 'integer', 'format': 'int32', 'description': 'Required. The number of hours between runs. Must be greater than or equal to 1 hour and less than or equal to 48 hours.'}, 'minuteOffset': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The number of minutes after the hour (in UTC) to run the query. Must be greater than or equal to 0 minutes and less than or equal to 59 minutes. If left unspecified, then an arbitrary offset is used.'}}, 'description': 'Used to schedule the query to run every so many hours.'}, 'Status': {'type': 'object', 'properties': {'code': {'type': 'integer', 'format': 'int32', 'description': 'The status code, which should be an enum value of google.rpc.Code.'}, 'details': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {'description': 'Properties of the object. Contains field @type with type URL.'}}, 'description': 'A list of messages that carry the error details. There is a common set of message types for APIs to use.'}, 'message': {'type': 'string', 'description': 'A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.'}}, 'description': 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'}, 'Minutes': {'type': 'object', 'properties': {'periodicity': {'type': 'integer', 'format': 'int32', 'description': 'Required. Number of minutes between runs. The interval must be greater than or equal to 5 minutes and less than or equal to 1440 minutes.'}}, 'description': 'Used to schedule the query to run every so many minutes.'}, 'Trigger': {'type': 'object', 'properties': {'count': {'type': 'integer', 'format': 'int32', 'description': 'The absolute number of time series that must fail the predicate for the condition to be triggered.'}, 'percent': {'type': 'number', 'format': 'double', 'description': 'The percentage of time series that must fail the predicate for the condition to be triggered.'}}, 'description': 'Specifies how many time series must fail a predicate to trigger a condition. If not specified, then a `{count: 1}` trigger is used.'}, 'LogMatch': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. A logs-based filter. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries) for how this filter should be constructed.'}, 'labelExtractors': {'type': 'object', 'description': 'Optional. A map from a label key to an extractor expression, which is used to extract the value for this label key. Each entry in this map is a specification for how data should be extracted from log entries that match `filter`. Each combination of extracted values is treated as a separate rule for the purposes of triggering notifications. Label keys and corresponding values can be used in notifications generated by this condition. Please see [the documentation on logs-based metric `valueExtractor`s](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics#LogMetric.FIELDS.value_extractor) for syntax and examples.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A condition type that checks whether a log message in the [scoping project](https://cloud.google.com/monitoring/api/v3#project_name) satisfies the given filter. Logs from other projects in the metrics scope are not evaluated.'}, 'Condition': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required if the condition exists. The unique resource name for this condition. Its format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID] `[CONDITION_ID]` is assigned by Cloud Monitoring when the condition is created as part of a new or updated alerting policy. When calling the alertPolicies.create method, do not include the `name` field in the conditions of the requested alerting policy. Cloud Monitoring creates the condition identifiers and includes them in the new policy. When calling the alertPolicies.update method to update a policy, including a condition `name` causes the existing condition to be updated. Conditions without names are added to the updated policy. Existing conditions are deleted if they are not updated. Best practice is to preserve `[CONDITION_ID]` if you make only small changes, such as those to condition thresholds, durations, or trigger values. Otherwise, treat the change as a new condition and let the existing condition be deleted.'}, 'displayName': {'type': 'string', 'description': "A short name or phrase used to identify the condition in dashboards, notifications, and incidents. To avoid confusion, don't use the same display name for multiple conditions in the same policy."}, 'conditionSql': {'$ref': '#/$defs/SqlCondition', 'description': 'A condition that periodically evaluates a SQL query result.'}, 'conditionAbsent': {'$ref': '#/$defs/MetricAbsence', 'description': 'A condition that checks that a time series continues to receive new data points.'}, 'conditionThreshold': {'$ref': '#/$defs/MetricThreshold', 'description': 'A condition that compares a time series against a threshold.'}, 'conditionMatchedLog': {'$ref': '#/$defs/LogMatch', 'description': 'A condition that checks for log messages matching given constraints. If set, no other conditions can be present.'}, 'conditionMonitoringQueryLanguage': {'$ref': '#/$defs/MonitoringQueryLanguageCondition', 'description': 'A condition that uses the Monitoring Query Language to define alerts.'}, 'conditionPrometheusQueryLanguage': {'$ref': '#/$defs/PrometheusQueryLanguageCondition', 'description': 'A condition that uses the Prometheus query language to define alerts.'}}, 'description': 'A condition is a true/false test that determines when an alerting policy should open an incident. If a condition evaluates to true, it signifies that something is wrong.'}, 'TimeOfDay': {'type': 'object', 'properties': {'hours': {'type': 'integer', 'format': 'int32', 'description': 'Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.'}, 'nanos': {'type': 'integer', 'format': 'int32', 'description': 'Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.'}, 'minutes': {'type': 'integer', 'format': 'int32', 'description': 'Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.'}, 'seconds': {'type': 'integer', 'format': 'int32', 'description': 'Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.'}}, 'description': 'Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.'}, 'Aggregation': {'type': 'object', 'properties': {'groupByFields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.'}, 'alignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored. The maximum value of the `alignment_period` is 104 weeks (2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.'}, 'perSeriesAligner': {'enum': ['ALIGN_NONE', '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'], 'type': 'string', 'description': 'An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No alignment. Raw data is returned. Not valid if cross-series reduction is requested. The `value_type` of the result is the same as the `value_type` of the input.', 'Align and convert to DELTA. The output is `delta = y1 - y0`. This alignment is valid for CUMULATIVE and `DELTA` metrics. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align and convert to a rate. The result is computed as `rate = (y1 - y0)/(t1 - t0)`, or "delta over time". Think of this aligner as providing the slope of the line that passes through the value at the start and at the end of the `alignment_period`. This aligner is valid for `CUMULATIVE` and `DELTA` metrics with numeric values. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The output is a `GAUGE` metric with `value_type` `DOUBLE`. If, by "rate", you mean "percentage change", see the `ALIGN_PERCENT_CHANGE` aligner instead.', 'Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for `GAUGE` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for `GAUGE` metrics. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the minimum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the maximum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the mean value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is `DOUBLE`.', 'Align the time series by returning the number of values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric or Boolean values. The `value_type` of the aligned result is `INT64`.', 'Align the time series by returning the sum of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric and distribution values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the output is `DOUBLE`.', 'Align the time series by returning the number of `True` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the number of `False` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the ratio of the number of `True` values to the total number of values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align and convert to a percentage change. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. This alignment returns `((current - previous)/previous) * 100`, where the value of `previous` is determined based on the `alignment_period`. If the values of `current` and `previous` are both 0, then the returned value is 0. If only `previous` is 0, the returned value is infinity. A 10-minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very short-lived spikes. The moving mean is only applicable for data whose values are `>= 0`. Any values `< 0` are treated as a missing datapoint, and are ignored. While `DELTA` metrics are accepted by this alignment, special care should be taken that the values for the metric will always be positive. The output is a `GAUGE` metric with `value_type` `DOUBLE`.']}, 'crossSeriesReducer': {'enum': ['REDUCE_NONE', 'REDUCE_MEAN', 'REDUCE_MIN', 'REDUCE_MAX', 'REDUCE_SUM', 'REDUCE_STDDEV', 'REDUCE_COUNT', 'REDUCE_COUNT_TRUE', 'REDUCE_COUNT_FALSE', 'REDUCE_FRACTION_TRUE', 'REDUCE_PERCENTILE_99', 'REDUCE_PERCENTILE_95', 'REDUCE_PERCENTILE_50', 'REDUCE_PERCENTILE_05'], 'type': 'string', 'description': 'The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No cross-time series reduction. The output of the `Aligner` is returned.', 'Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The `value_type` of the output is DOUBLE.', 'Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the sum across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric and distribution values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric or distribution values. The `value_type` of the output is `DOUBLE`.', 'Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of numeric, Boolean, distribution, and string `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `True`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `False`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the ratio of the number of `True`-valued data points to the total number of data points for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Reduce by computing the [99th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [95th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [50th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [5th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.']}}, 'description': 'Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is _aligned_ to the same time interval boundaries, then the set of time series is optionally _reduced_ in number. Alignment consists of applying the `per_series_aligner` operation to each time series after its data has been divided into regular `alignment_period` time intervals. This process takes _all_ of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period. Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a `cross_series_reducer` to all the time series, optionally sorting the time series into subsets with `group_by_fields`, and applying the reducer to each subset. The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see [Filtering and aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).'}, 'AlertPolicy': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Identifier. Required if the policy exists. The resource name for this policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] `[ALERT_POLICY_ID]` is assigned by Cloud Monitoring when the policy is created. When calling the alertPolicies.create method, do not include the `name` field in the alerting policy passed as part of the request.', 'x-google-identifier': True}, 'enabled': {'type': 'boolean', 'description': 'Whether or not the policy is enabled. On write, the default interpretation if unset is that the policy is enabled. On read, clients should not make any assumption about the state if it has not been populated. The field should always be populated on List and Get operations, unless a field projection has been specified that strips it out.'}, 'combiner': {'enum': ['COMBINE_UNSPECIFIED', 'AND', 'OR', 'AND_WITH_MATCHING_RESOURCE'], 'type': 'string', 'description': 'How to combine the results of multiple conditions to determine if an incident should be opened. If `condition_time_series_query_language` is present, this must be `COMBINE_UNSPECIFIED`.', 'x-google-enum-descriptions': ['An unspecified combiner.', 'Combine conditions using the logical `AND` operator. An incident is created only if all the conditions are met simultaneously. This combiner is satisfied if all conditions are met, even if they are met on completely different resources.', 'Combine conditions using the logical `OR` operator. An incident is created if any of the listed conditions is met.', 'Combine conditions using logical `AND` operator, but unlike the regular `AND` option, an incident is created only if all conditions are met simultaneously on at least one resource.']}, 'severity': {'enum': ['SEVERITY_UNSPECIFIED', 'CRITICAL', 'ERROR', 'WARNING'], 'type': 'string', 'description': 'Optional. The severity of an alerting policy indicates how important incidents generated by that policy are. The severity level will be displayed on the Incident detail page and in notifications.', 'x-google-enum-descriptions': ['No severity is specified. This is the default value.', 'This is the highest severity level. Use this if the problem could cause significant damage or downtime.', 'This is the medium severity level. Use this if the problem could cause minor damage or downtime.', 'This is the lowest severity level. Use this if the problem is not causing any damage or downtime, but could potentially lead to a problem in the future.']}, 'validity': {'$ref': '#/$defs/Status', 'description': 'Read-only description of how the alerting policy is invalid. This field is only set when the alerting policy is invalid. An invalid alerting policy will not generate incidents.'}, 'conditions': {'type': 'array', 'items': {'$ref': '#/$defs/Condition'}, 'description': 'A list of conditions for the policy. The conditions are combined by AND or OR according to the `combiner` field. If the combined conditions evaluate to true, then an incident is created. A policy can have from one to six conditions. If `condition_time_series_query_language` is present, it must be the only `condition`. If `condition_monitoring_query_language` is present, it must be the only `condition`.'}, 'userLabels': {'type': 'object', 'description': 'User-supplied key/value data to be used for organizing and identifying the `AlertPolicy` objects. The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter. Note that Prometheus {alert name} is a [valid Prometheus label names](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels), whereas Prometheus {rule group} is an unrestricted UTF-8 string. This means that they cannot be stored as-is in user labels, because they may contain characters that are not allowed in user-label values.', 'additionalProperties': {'type': 'string'}}, 'displayName': {'type': 'string', 'description': 'A short name or phrase used to identify the policy in dashboards, notifications, and incidents. To avoid confusion, don\'t use the same display name for multiple policies in the same project. The name is limited to 512 Unicode characters. The convention for the display_name of a PrometheusQueryLanguageCondition is "{rule group name}/{alert name}", where the {rule group name} and {alert name} should be taken from the corresponding Prometheus configuration file. This convention is not enforced. In any case the display_name is not a unique key of the AlertPolicy.'}, 'alertStrategy': {'$ref': '#/$defs/AlertStrategy', 'description': "Control over how this alerting policy's notification channels are notified."}, 'documentation': {'$ref': '#/$defs/Documentation', 'description': 'Documentation that is included with notifications and incidents related to this policy. Best practice is for the documentation to include information to help responders understand, mitigate, escalate, and correct the underlying problems detected by the alerting policy. Notification channels that have limited capacity might not show this documentation.'}, 'creationRecord': {'$ref': '#/$defs/MutationRecord', 'description': 'A read-only record of the creation of the alerting policy. If provided in a call to create or update, this field will be ignored.'}, 'mutationRecord': {'$ref': '#/$defs/MutationRecord', 'description': 'A read-only record of the most recent change to the alerting policy. If provided in a call to create or update, this field will be ignored.'}, 'notificationChannels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Identifies the notification channels to which notifications should be sent when incidents are opened or closed or when new violations occur on an already opened incident. Each element of this array corresponds to the `name` field in each of the `NotificationChannel` objects that are returned from the `ListNotificationChannels` method. The format of the entries in this field is: projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]'}}, 'description': 'A description of the conditions under which some aspect of your system is considered to be "unhealthy" and the ways to notify people or services about this state. For an overview of alerting policies, see [Introduction to Alerting](https://cloud.google.com/monitoring/alerts/). '}, 'BooleanTest': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Required. The name of the column containing the boolean value. If the value in a row is NULL, that row is ignored.'}}, 'description': 'A test that uses an alerting result in a boolean column produced by the SQL query.'}, 'RowCountTest': {'type': 'object', 'properties': {'threshold': {'type': 'string', 'format': 'int64', 'description': 'Required. The value against which to compare the row count.'}, 'comparison': {'enum': ['COMPARISON_UNSPECIFIED', 'COMPARISON_GT', 'COMPARISON_GE', 'COMPARISON_LT', 'COMPARISON_LE', 'COMPARISON_EQ', 'COMPARISON_NE'], 'type': 'string', 'description': 'Required. The comparison to apply between the number of rows returned by the query and the threshold.', 'x-google-enum-descriptions': ['No ordering relationship is specified.', 'True if the left argument is greater than the right argument.', 'True if the left argument is greater than or equal to the right argument.', 'True if the left argument is less than the right argument.', 'True if the left argument is less than or equal to the right argument.', 'True if the left argument is equal to the right argument.', 'True if the left argument is not equal to the right argument.']}}, 'description': 'A test that checks if the number of rows in the result set violates some threshold.'}, 'SqlCondition': {'type': 'object', 'properties': {'daily': {'$ref': '#/$defs/Daily', 'description': 'Schedule the query to execute every so many days.'}, 'query': {'type': 'string', 'description': 'Required. The Log Analytics SQL query to run, as a string. The query must conform to the required shape. Specifically, the query must not try to filter the input by time. A filter will automatically be applied to filter the input so that the query receives all rows received since the last time the query was run. For example, the following query extracts all log entries containing an HTTP request: SELECT timestamp, log_name, severity, http_request, resource, labels FROM my-project.global._Default._AllLogs WHERE http_request IS NOT NULL'}, 'hourly': {'$ref': '#/$defs/Hourly', 'description': 'Schedule the query to execute every so many hours.'}, 'minutes': {'$ref': '#/$defs/Minutes', 'description': 'Schedule the query to execute every so many minutes.'}, 'booleanTest': {'$ref': '#/$defs/BooleanTest', 'description': 'Test the boolean value in the indicated column.'}, 'rowCountTest': {'$ref': '#/$defs/RowCountTest', 'description': 'Test the row count against a threshold.'}}, 'description': 'A condition that allows alerting policies to be defined using GoogleSQL. SQL conditions examine a sliding window of logs using GoogleSQL. Alert policies with SQL conditions may incur additional billing.'}, 'AlertStrategy': {'type': 'object', 'properties': {'autoClose': {'type': 'string', 'format': 'google-duration', 'description': 'If an alerting policy that was active has no data for this long, any open incidents will close'}, 'notificationPrompts': {'type': 'array', 'items': {'enum': ['NOTIFICATION_PROMPT_UNSPECIFIED', 'OPENED', 'CLOSED'], 'type': 'string', 'x-google-enum-descriptions': ['No strategy specified. Treated as error.', 'Notify when an incident is opened.', 'Notify when an incident is closed.']}, 'description': 'For log-based alert policies, the notification prompts is always [OPENED]. For non log-based alert policies, the notification prompts can be [OPENED] or [OPENED, CLOSED].'}, 'notificationRateLimit': {'$ref': '#/$defs/NotificationRateLimit', 'description': 'Required for log-based alerting policies, i.e. policies with a `LogMatch` condition. This limit is not implemented for alerting policies that do not have a LogMatch condition.'}, 'notificationChannelStrategy': {'type': 'array', 'items': {'$ref': '#/$defs/NotificationChannelStrategy'}, 'description': 'Control how notifications will be sent out, on a per-channel basis.'}}, 'description': 'Control over how the notification channels in `notification_channels` are notified when this alert fires.'}, 'Documentation': {'type': 'object', 'properties': {'links': {'type': 'array', 'items': {'$ref': '#/$defs/Link'}, 'description': 'Optional. Links to content such as playbooks, repositories, and other resources. This field can contain up to 3 entries.'}, 'content': {'type': 'string', 'description': 'The body of the documentation, interpreted according to `mime_type`. The content may not exceed 8,192 Unicode characters and may not exceed more than 10,240 bytes when encoded in UTF-8 format, whichever is smaller. This text can be [templatized by using variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars).'}, 'subject': {'type': 'string', 'description': 'Optional. The subject line of the notification. The subject line may not exceed 10,240 bytes. In notifications generated by this policy, the contents of the subject line after variable expansion will be truncated to 255 bytes or shorter at the latest UTF-8 character boundary. The 255-byte limit is recommended by [this thread](https://stackoverflow.com/questions/1592291/what-is-the-email-subject-length-limit). It is both the limit imposed by some third-party ticketing products and it is common to define textual fields in databases as VARCHAR(255). The contents of the subject line can be [templatized by using variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars). If this field is missing or empty, a default subject line will be generated.'}, 'mimeType': {'type': 'string', 'description': 'The format of the `content` field. Presently, only the value `"text/markdown"` is supported. See [Markdown](https://en.wikipedia.org/wiki/Markdown) for more information.'}}, 'description': 'Documentation that is included in the notifications and incidents pertaining to this policy.'}, 'MetricAbsence': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. A [filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold. The filter is similar to the one that is specified in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length.'}, 'trigger': {'$ref': '#/$defs/Trigger', 'description': 'The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by `filter` and `aggregations`.'}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Required. The amount of time that a time series must fail to report new data to be considered failing. The minimum value of this field is 120 seconds. Larger values that are a multiple of a minute--for example, 240 or 300 seconds--are supported. If an invalid value is given, an error will be returned.'}, 'aggregations': {'type': 'array', 'items': {'$ref': '#/$defs/Aggregation'}, 'description': 'Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). Multiple aggregations are applied in the order specified. This field is similar to the one in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the `ListTimeSeries` method when debugging this field.'}}, 'description': 'A condition type that checks that monitored resources are reporting data. The configuration defines a metric and a set of monitored resources. The predicate is considered in violation when a time series for the specified metric of a monitored resource does not include any data in the specified `duration`.'}, 'MutationRecord': {'type': 'object', 'properties': {'mutatedBy': {'type': 'string', 'description': 'The email address of the user making the change.'}, 'mutateTime': {'type': 'string', 'format': 'date-time', 'description': 'When the change occurred.'}}, 'description': 'Describes a change made to a configuration.'}, 'ForecastOptions': {'type': 'object', 'properties': {'forecastHorizon': {'type': 'string', 'format': 'google-duration', 'description': 'Required. The length of time into the future to forecast whether a time series will violate the threshold. If the predicted value is found to violate the threshold, and the violation is observed in all forecasts made for the configured `duration`, then the time series is considered to be failing. The forecast horizon can range from 1 hour to 60 hours.'}}, 'description': 'Options used when forecasting the time series and testing the predicted value against the threshold.'}, 'MetricThreshold': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. A [filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold. The filter is similar to the one that is specified in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length.'}, 'trigger': {'$ref': '#/$defs/Trigger', 'description': 'The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by `filter` and `aggregations`, or by the ratio, if `denominator_filter` and `denominator_aggregations` are specified.'}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Required. The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the `aggregations` field); a good duration is long enough so that a single outlier does not generate spurious alerts, but short enough that unhealthy states are detected and alerted on quickly.'}, 'comparison': {'enum': ['COMPARISON_UNSPECIFIED', 'COMPARISON_GT', 'COMPARISON_GE', 'COMPARISON_LT', 'COMPARISON_LE', 'COMPARISON_EQ', 'COMPARISON_NE'], 'type': 'string', 'description': 'The comparison to apply between the time series (indicated by `filter` and `aggregation`) and the threshold (indicated by `threshold_value`). The comparison is applied on each time series, with the time series on the left-hand side and the threshold on the right-hand side. Only `COMPARISON_LT` and `COMPARISON_GT` are supported currently.', 'x-google-enum-descriptions': ['No ordering relationship is specified.', 'True if the left argument is greater than the right argument.', 'True if the left argument is greater than or equal to the right argument.', 'True if the left argument is less than the right argument.', 'True if the left argument is less than or equal to the right argument.', 'True if the left argument is equal to the right argument.', 'True if the left argument is not equal to the right argument.']}, 'aggregations': {'type': 'array', 'items': {'$ref': '#/$defs/Aggregation'}, 'description': 'Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). Multiple aggregations are applied in the order specified. This field is similar to the one in the [`ListTimeSeries` request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the `ListTimeSeries` method when debugging this field.'}, 'thresholdValue': {'type': 'number', 'format': 'double', 'description': 'A value against which to compare the time series.'}, 'forecastOptions': {'$ref': '#/$defs/ForecastOptions', 'description': 'When this field is present, the `MetricThreshold` condition forecasts whether the time series is predicted to violate the threshold within the `forecast_horizon`. When this field is not set, the `MetricThreshold` tests the current value of the timeseries against the threshold.'}, 'denominatorFilter': {'type': 'string', 'description': 'A [filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies a time series that should be used as the denominator of a ratio that will be compared with the threshold. If a `denominator_filter` is specified, the time series specified by the `filter` field will be used as the numerator. The filter must specify the metric type and optionally may contain restrictions on resource type, resource labels, and metric labels. This field may not exceed 2048 Unicode characters in length.'}, 'evaluationMissingData': {'enum': ['EVALUATION_MISSING_DATA_UNSPECIFIED', 'EVALUATION_MISSING_DATA_INACTIVE', 'EVALUATION_MISSING_DATA_ACTIVE', 'EVALUATION_MISSING_DATA_NO_OP'], 'type': 'string', 'description': 'A condition control that determines how metric-threshold conditions are evaluated when data stops arriving. To use this control, the value of the `duration` field must be greater than or equal to 60 seconds.', 'x-google-enum-descriptions': ['An unspecified evaluation missing data option. Equivalent to EVALUATION_MISSING_DATA_NO_OP.', 'If there is no data to evaluate the condition, then evaluate the condition as false.', 'If there is no data to evaluate the condition, then evaluate the condition as true.', 'Do not evaluate the condition to any value if there is no data.']}, 'denominatorAggregations': {'type': 'array', 'items': {'$ref': '#/$defs/Aggregation'}, 'description': 'Specifies the alignment of data points in individual time series selected by `denominatorFilter` as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resources). When computing ratios, the `aggregations` and `denominator_aggregations` fields must use the same alignment period and produce time series that have the same periodicity and labels.'}}, 'description': 'A condition type that compares a collection of time series against a threshold.'}, 'NotificationRateLimit': {'type': 'object', 'properties': {'period': {'type': 'string', 'format': 'google-duration', 'description': 'Not more than one notification per `period`.'}}, 'description': "Control over the rate of notifications sent to this alerting policy's notification channels."}, 'NotificationChannelStrategy': {'type': 'object', 'properties': {'renotifyInterval': {'type': 'string', 'format': 'google-duration', 'description': 'The frequency at which to send reminder notifications for open incidents. The value must be between 30 minutes and 24 hours.'}, 'notificationChannelNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The full REST resource name for the notification channels that these settings apply to. Each of these correspond to the name field in one of the NotificationChannel objects referenced in the notification_channels field of this AlertPolicy. The format is: projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]'}}, 'description': 'Control over how the notification channels in `notification_channels` are notified when this alert fires, on a per-channel basis.'}, 'MonitoringQueryLanguageCondition': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': '[Monitoring Query Language](https://cloud.google.com/monitoring/mql) query that outputs a boolean stream.'}, 'trigger': {'$ref': '#/$defs/Trigger', 'description': 'The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by `filter` and `aggregations`, or by the ratio, if `denominator_filter` and `denominator_aggregations` are specified.'}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the `aggregations` field); a good duration is long enough so that a single outlier does not generate spurious alerts, but short enough that unhealthy states are detected and alerted on quickly. The default value is zero.'}, 'evaluationMissingData': {'enum': ['EVALUATION_MISSING_DATA_UNSPECIFIED', 'EVALUATION_MISSING_DATA_INACTIVE', 'EVALUATION_MISSING_DATA_ACTIVE', 'EVALUATION_MISSING_DATA_NO_OP'], 'type': 'string', 'description': 'A condition control that determines how metric-threshold conditions are evaluated when data stops arriving.', 'x-google-enum-descriptions': ['An unspecified evaluation missing data option. Equivalent to EVALUATION_MISSING_DATA_NO_OP.', 'If there is no data to evaluate the condition, then evaluate the condition as false.', 'If there is no data to evaluate the condition, then evaluate the condition as true.', 'Do not evaluate the condition to any value if there is no data.']}}, 'description': 'A condition type that allows alerting policies to be defined using [Monitoring Query Language](https://cloud.google.com/monitoring/mql).'}, 'PrometheusQueryLanguageCondition': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Required. The PromQL expression to evaluate. Every evaluation cycle this expression is evaluated at the current time, and all resultant time series become pending/firing alerts. This field must not be empty.'}, 'labels': {'type': 'object', 'description': 'Optional. Labels to add to or overwrite in the PromQL query result. Label names [must be valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). Label values can be [templatized by using variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars). The only available variable names are the names of the labels in the PromQL result, including "__name__" and "value". "labels" may be empty.', 'additionalProperties': {'type': 'string'}}, 'duration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Alerts are considered firing once their PromQL expression was evaluated to be "true" for this long. Alerts whose PromQL expression was not evaluated to be "true" for long enough are considered pending. Must be a non-negative duration or missing. This field is optional. Its default value is zero.'}, 'alertRule': {'type': 'string', 'description': 'Optional. The alerting rule name of this alert in the corresponding Prometheus configuration file. Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future. This field is optional. If this field is not empty, then it must be a [valid Prometheus label name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). This field may not exceed 2048 Unicode characters in length.'}, 'ruleGroup': {'type': 'string', 'description': 'Optional. The rule group name of this alert in the corresponding Prometheus configuration file. Some external tools may require this field to be populated correctly in order to refer to the original Prometheus configuration file. The rule group name and the alert name are necessary to update the relevant AlertPolicies in case the definition of the rule group changes in the future. This field is optional. If this field is not empty, then it must contain a valid UTF-8 string. This field may not exceed 2048 Unicode characters in length.'}, 'evaluationInterval': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. How often this rule should be evaluated. Must be a positive multiple of 30 seconds or missing. This field is optional. Its default value is 30 seconds. If this PrometheusQueryLanguageCondition was generated from a Prometheus alerting rule, then this value should be taken from the enclosing rule group.'}, 'disableMetricValidation': {'type': 'boolean', 'description': 'Optional. Whether to disable metric existence validation for this condition. This allows alerting policies to be defined on metrics that do not yet exist, improving advanced customer workflows such as configuring alerting policies using Terraform. Users with the `monitoring.alertPolicyViewer` role are able to see the name of the non-existent metric in the alerting policy condition.'}}, 'description': 'A condition type that allows alerting policies to be defined using [Prometheus Query Language (PromQL)](https://prometheus.io/docs/prometheus/latest/querying/basics/). The PrometheusQueryLanguageCondition message contains information from a Prometheus alerting rule and its associated rule group. A Prometheus alerting rule is described [here](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/). The semantics of a Prometheus alerting rule is described [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule). A Prometheus rule group is described [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The semantics of a Prometheus rule group is described [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group). Because Cloud Alerting has no representation of a Prometheus rule group resource, we must embed the information of the parent rule group inside each of the conditions that refer to it. We must also update the contents of all Prometheus alerts in case the information of their rule group changes. The PrometheusQueryLanguageCondition protocol buffer combines the information of the corresponding rule group and alerting rule. The structure of the PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure of the Prometheus rule group and alerting rule YAML declarations. The PrometheusQueryLanguageCondition protocol buffer may change in the future to support future rule group and/or alerting rule features. There are no new such features at the present time (2023-06-26).'}}, 'properties': {'totalSize': {'type': 'integer', 'format': 'int32', 'description': 'The total number of alert policies in all pages. This number is only an estimate, and may change in subsequent pages. https://aip.dev/158'}, 'alertPolicies': {'type': 'array', 'items': {'$ref': '#/$defs/AlertPolicy'}, 'description': 'The returned alert policies.'}, 'nextPageToken': {'type': 'string', 'description': 'If there might be more results than were returned, then this field is set to a non-empty value. To see the additional results, use that value as `page_token` in the next call to this method.'}}, 'description': 'The protocol for the `ListAlertPolicies` response.'}
Esquema de entrada
{'type': 'object', 'required': ['parent'], 'properties': {'filter': {'type': 'string', 'description': 'Optional. An alert is returned if there is a match on any fields belonging to the alert or its subfields.'}, 'parent': {'type': 'string', 'description': 'Required. The name of the project to list alerts for.'}, 'orderBy': {'type': 'string', 'description': 'Optional. A comma-separated list of fields in `Alert` to use for sorting. The default sort direction is ascending. To specify descending order for a field, add a `desc` modifier. The following fields are supported: * `open_time` * `close_time` For example, `close_time desc, open_time` will return the alerts closed most recently, with ties broken in the order of older alerts listed first. If the field is not set, the results are sorted by `open_time desc`.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. The maximum number of results to return in a single response. If not set to a positive number, at most 50 alerts will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.'}, 'pageToken': {'type': 'string', 'description': 'Optional. If non-empty, `page_token` must contain a value returned as the `next_page_token` in a previous response to request the next set of results.'}}, 'description': 'The `ListAlerts` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Alert': {'type': 'object', 'properties': {'log': {'$ref': '#/$defs/LogMetadata', 'description': 'The log information associated with the alert. This field is only populated for log-based alerts.'}, 'name': {'type': 'string', 'description': 'Identifier. The name of the alert. The format is: projects/[PROJECT_ID_OR_NUMBER]/alerts/[ALERT_ID] The `[ALERT_ID]` is a system-assigned unique identifier for the alert.', 'x-google-identifier': True}, 'state': {'enum': ['STATE_UNSPECIFIED', 'OPEN', 'CLOSED'], 'type': 'string', 'readOnly': True, 'description': 'Output only. The current state of the alert.', 'x-google-enum-descriptions': ['The alert state is unspecified.', 'The alert is open.', 'The alert is closed.']}, 'metric': {'$ref': '#/$defs/Metric', 'description': "The metric type and any metric labels preserved from the incident's generating condition."}, 'policy': {'$ref': '#/$defs/PolicySnapshot', 'description': 'The snapshot of the alert policy that generated this alert.'}, 'metadata': {'$ref': '#/$defs/MonitoredResourceMetadata', 'description': 'The metadata of the monitored resource.'}, 'openTime': {'type': 'string', 'format': 'date-time', 'description': 'The time when the alert was opened.'}, 'resource': {'$ref': '#/$defs/MonitoredResource', 'description': "The monitored resource type and any monitored resource labels preserved from the incident's generating condition."}, 'closeTime': {'type': 'string', 'format': 'date-time', 'description': 'The time when the alert was closed.'}}, 'description': 'An alert is the representation of a violation of an alert policy. It is a read-only resource that cannot be modified by the accompanied API.'}, 'Metric': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'An existing metric type, see google.api.MetricDescriptor. For example, `custom.googleapis.com/invoice/paid/amount`.'}, 'labels': {'type': 'object', 'description': 'The set of label values that uniquely identify this metric. All labels listed in the `MetricDescriptor` must be assigned values.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A specific metric, identified by specifying values for all of the labels of a `MetricDescriptor`.'}, 'LogMetadata': {'type': 'object', 'properties': {'extractedLabels': {'type': 'object', 'description': 'The labels extracted from the log.', 'additionalProperties': {'type': 'string'}}}, 'description': 'Information about the log for log-based alerts.'}, 'PolicySnapshot': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'The name of the alert policy resource. In the form of "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]".'}, 'severity': {'enum': ['SEVERITY_UNSPECIFIED', 'CRITICAL', 'ERROR', 'WARNING'], 'type': 'string', 'description': 'The severity of the alert policy.', 'x-google-enum-descriptions': ['No severity is specified. This is the default value.', 'This is the highest severity level. Use this if the problem could cause significant damage or downtime.', 'This is the medium severity level. Use this if the problem could cause minor damage or downtime.', 'This is the lowest severity level. Use this if the problem is not causing any damage or downtime, but could potentially lead to a problem in the future.']}, 'userLabels': {'type': 'object', 'description': 'The user labels for the alert policy.', 'additionalProperties': {'type': 'string'}}, 'displayName': {'type': 'string', 'description': 'The display name of the alert policy.'}}, 'description': 'The state of the policy at the time the alert was generated.'}, 'MonitoredResource': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The monitored resource type. This field must match the `type` field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is `gce_instance`. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).'}, 'labels': {'type': 'object', 'description': 'Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels `"project_id"`, `"instance_id"`, and `"zone"`.', 'additionalProperties': {'type': 'string'}}}, 'description': 'An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The `type` field identifies a MonitoredResourceDescriptor object that describes the resource\'s schema. Information in the `labels` field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for `"gce_instance"` has labels `"project_id"`, `"instance_id"` and `"zone"`: { "type": "gce_instance", "labels": { "project_id": "my-project", "instance_id": "12345678901234", "zone": "us-central1-a" }}'}, 'MonitoredResourceMetadata': {'type': 'object', 'properties': {'userLabels': {'type': 'object', 'description': 'Output only. A map of user-defined metadata labels.', 'additionalProperties': {'type': 'string'}}, 'systemLabels': {'type': 'object', 'description': 'Output only. Values for predefined system metadata labels. System labels are a kind of metadata extracted by Google, including "machine_image", "vpc", "subnet_id", "security_group", "name", etc. System label values can be only strings, Boolean values, or a list of strings. For example: { "name": "my-test-instance", "security_group": ["a", "b", "c"], "spot_instance": false }', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Auxiliary metadata for a MonitoredResource object. MonitoredResource objects contain the minimum set of information to uniquely identify a monitored resource instance. There is some other useful auxiliary metadata. Monitoring and Logging use an ingestion pipeline to extract metadata for cloud resources of all types, and store the metadata in this message.'}}, 'properties': {'alerts': {'type': 'array', 'items': {'$ref': '#/$defs/Alert'}, 'description': 'The list of alerts.'}, 'totalSize': {'type': 'integer', 'format': 'int32', 'description': 'The estimated total number of matching results for this query.'}, 'nextPageToken': {'type': 'string', 'description': 'If not empty, indicates that there may be more results that match the request. Use the value in the `page_token` field in a subsequent request to fetch the next set of results. The token is encrypted and only guaranteed to return correct results for 72 hours after it is created. If empty, all results have been returned.'}}, 'description': 'The `ListAlerts` response.'}
Esquema de entrada
{'type': 'object', 'required': ['parent'], 'properties': {'parent': {'type': 'string', 'description': 'Required. The scope of the dashboards to list. The format is: projects/[PROJECT_ID_OR_NUMBER]'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'A positive number that is the maximum number of results to return. If unspecified, a default of 1000 is used.'}, 'pageToken': {'type': 'string', 'description': 'Optional. If this field is not empty then it must contain the `nextPageToken` value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.'}}, 'description': 'The `ListDashboards` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Row': {'type': 'object', 'properties': {'weight': {'type': 'string', 'format': 'int64', 'description': 'The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative to peers). Greater the weight, greater the height of the row on the screen. If omitted, a value of 1 is used while rendering.'}, 'widgets': {'type': 'array', 'items': {'$ref': '#/$defs/Widget'}, 'description': 'The display widgets arranged horizontally in this row.'}}, 'description': 'Defines the layout properties and content for a row.'}, 'Axis': {'type': 'object', 'properties': {'label': {'type': 'string', 'description': 'The label of the axis.'}, 'scale': {'enum': ['SCALE_UNSPECIFIED', 'LINEAR', 'LOG10'], 'type': 'string', 'description': 'The axis scale. By default, a linear scale is used.', 'x-google-enum-descriptions': ['Scale is unspecified. The view will default to `LINEAR`.', 'Linear scale.', 'Logarithmic scale (base 10).']}}, 'description': 'A chart axis.'}, 'Text': {'type': 'object', 'properties': {'style': {'$ref': '#/$defs/TextStyle', 'description': 'How the text is styled'}, 'format': {'enum': ['FORMAT_UNSPECIFIED', 'MARKDOWN', 'RAW'], 'type': 'string', 'description': 'How the text content is formatted.', 'x-google-enum-descriptions': ['Format is unspecified. Defaults to MARKDOWN.', 'The text contains Markdown formatting.', 'The text contains no special formatting.']}, 'content': {'type': 'string', 'description': 'The text content to be displayed.'}}, 'description': 'A widget that displays textual content.'}, 'Tile': {'type': 'object', 'properties': {'xPos': {'type': 'integer', 'format': 'int32', 'description': 'The zero-indexed position of the tile in grid blocks relative to the left edge of the grid. Tiles must be contained within the specified number of columns. `x_pos` cannot be negative.'}, 'yPos': {'type': 'integer', 'format': 'int32', 'description': 'The zero-indexed position of the tile in grid blocks relative to the top edge of the grid. `y_pos` cannot be negative.'}, 'width': {'type': 'integer', 'format': 'int32', 'description': 'The width of the tile, measured in grid blocks. Tiles must have a minimum width of 1.'}, 'height': {'type': 'integer', 'format': 'int32', 'description': 'The height of the tile, measured in grid blocks. Tiles must have a minimum height of 1.'}, 'widget': {'$ref': '#/$defs/Widget', 'description': 'The informational widget contained in the tile. For example an `XyChart`.'}}, 'description': 'A single tile in the mosaic. The placement and size of the tile are configurable.'}, 'Empty': {'type': 'object', 'properties': {}, 'description': 'A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }'}, 'Column': {'type': 'object', 'properties': {'weight': {'type': 'string', 'format': 'int64', 'description': 'The relative weight of this column. The column weight is used to adjust the width of columns on the screen (relative to peers). Greater the weight, greater the width of the column on the screen. If omitted, a value of 1 is used while rendering.'}, 'widgets': {'type': 'array', 'items': {'$ref': '#/$defs/Widget'}, 'description': 'The display widgets arranged vertically in this column.'}}, 'description': 'Defines the layout properties and content for a column.'}, 'Widget': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Optional. The widget id. Ids may be made up of alphanumerics, dashes and underscores. Widget ids are optional.'}, 'text': {'$ref': '#/$defs/Text', 'description': 'A raw string or markdown displaying textual content.'}, 'blank': {'$ref': '#/$defs/Empty', 'description': 'A blank space.'}, 'title': {'type': 'string', 'description': 'Optional. The title of the widget.'}, 'treemap': {'$ref': '#/$defs/Treemap', 'description': 'A widget that displays data as a treemap.'}, 'xyChart': {'$ref': '#/$defs/XyChart', 'description': 'A chart of time series data.'}, 'pieChart': {'$ref': '#/$defs/PieChart', 'description': 'A widget that displays timeseries data as a pie chart.'}, 'logsPanel': {'$ref': '#/$defs/LogsPanel', 'description': 'A widget that shows a stream of logs.'}, 'scorecard': {'$ref': '#/$defs/Scorecard', 'description': 'A scorecard summarizing time series data.'}, 'timeRange': {'$ref': '#/$defs/TimeRange', 'description': 'Optional. Represents a time range for the widget. When set, this time range will override the dashboard time range. Supported for line, stacked area and stacked bar widgets only.'}, 'alertChart': {'$ref': '#/$defs/AlertChart', 'description': 'A chart of alert policy data.'}, 'incidentList': {'$ref': '#/$defs/IncidentList', 'description': 'A widget that shows list of incidents.'}, 'filterControl': {'$ref': '#/$defs/FilterControl', 'description': 'A widget that displays an input field to change the value of a template variable.'}, 'sectionHeader': {'$ref': '#/$defs/SectionHeader', 'description': 'A widget that defines a section header for easier navigation of the dashboard.'}, 'singleViewGroup': {'$ref': '#/$defs/SingleViewGroup', 'description': 'A widget that groups the other widgets by using a dropdown menu.'}, 'timeSeriesTable': {'$ref': '#/$defs/TimeSeriesTable', 'description': 'A widget that displays time series data in a tabular format.'}, 'collapsibleGroup': {'$ref': '#/$defs/CollapsibleGroup', 'description': 'A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets.'}, 'errorReportingPanel': {'$ref': '#/$defs/ErrorReportingPanel', 'description': 'A widget that displays a list of error groups.'}, 'visibilityCondition': {'$ref': '#/$defs/VisibilityCondition', 'description': 'Optional. If set, this widget is rendered only when the condition is evaluated to true.'}}, 'description': 'Widget contains a single dashboard component and configuration of how to present the component in the dashboard.'}, 'DataSet': {'type': 'object', 'properties': {'sort': {'type': 'array', 'items': {'$ref': '#/$defs/ColumnSortingOptions'}, 'description': 'Optional. A collection of sort options, affects the order of the data and legend.'}, 'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'Optional. A collection of measures.'}, 'plotType': {'enum': ['PLOT_TYPE_UNSPECIFIED', 'LINE', 'STACKED_AREA', 'STACKED_BAR', 'HEATMAP'], 'type': 'string', 'description': 'How this data should be plotted on the chart.', 'x-google-enum-descriptions': ['Plot type is unspecified. The view will default to `LINE`.', 'The data is plotted as a set of lines (one line per series).', 'The data is plotted as a set of filled areas (one area per series), with the areas stacked vertically (the base of each area is the top of its predecessor, and the base of the first area is the x-axis). Since the areas do not overlap, each is filled with a different opaque color.', 'The data is plotted as a set of rectangular boxes (one box per series), with the boxes stacked vertically (the base of each box is the top of its predecessor, and the base of the first box is the x-axis). Since the boxes do not overlap, each is filled with a different opaque color.', 'The data is plotted as a heatmap. The series being plotted must have a `DISTRIBUTION` value type. The value of each bucket in the distribution is displayed as a color. This type is not currently available in the Stackdriver Monitoring application.']}, 'breakdowns': {'type': 'array', 'items': {'$ref': '#/$defs/Breakdown'}, 'description': 'Optional. The collection of breakdowns to be applied to the dataset.'}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/Dimension'}, 'description': 'Optional. A collection of dimension columns.'}, 'targetAxis': {'enum': ['TARGET_AXIS_UNSPECIFIED', 'Y1', 'Y2'], 'type': 'string', 'description': 'Optional. The target axis to use for plotting the metric.', 'x-google-enum-descriptions': ['The target axis was not specified. Defaults to Y1.', 'The y_axis (the right axis of chart).', 'The y2_axis (the left axis of chart).']}, 'legendTemplate': {'type': 'string', 'description': "A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value."}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. Fields for querying time series data from the Stackdriver metrics API.'}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals. For PromQL queries, this field is used to set the minimum interval for the query `step`, controlling data granularity. Larger values can improve performance on long time ranges. See Querying Basics and Range Queries for more details on the PromQL `step`. [1]: https://prometheus.io/docs/prometheus/latest/querying/basics/ [2]: https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries'}}, 'description': 'Groups a time series query definition with charting options.'}, 'Measure': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Required. The column name within in the dataset used for the measure.'}, 'aggregationFunction': {'$ref': '#/$defs/AggregationFunction', 'description': 'Required. The aggregation function applied to the input column. This must not be set to `"none"` unless binning is disabled on the dimension. The aggregation function is used to group points on the dimension bins.'}}, 'description': 'A chart measure. Measures represent a measured property in your chart data such as rainfall in inches, number of units sold, revenue gained, etc.'}, 'Treemap': {'type': 'object', 'properties': {'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/TreemapDataSet'}, 'description': "Required. The collection of datasets used to construct and populate the treemap. For the rendered treemap rectangles: - Color is determined by the aggregated value for each grouping. - Size is proportional to the count of time series aggregated within that rectangle's segment."}, 'treemapHierarchy': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required. Ordered labels representing the hierarchical treemap structure.'}}, 'description': 'A widget that displays hierarchical data as a treemap.'}, 'XyChart': {'type': 'object', 'properties': {'xAxis': {'$ref': '#/$defs/Axis', 'description': 'The properties applied to the x-axis.'}, 'yAxis': {'$ref': '#/$defs/Axis', 'description': 'The properties applied to the y-axis.'}, 'y2Axis': {'$ref': '#/$defs/Axis', 'description': 'The properties applied to the y2-axis.'}, 'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/DataSet'}, 'description': 'Required. The data displayed in this chart.'}, 'thresholds': {'type': 'array', 'items': {'$ref': '#/$defs/Threshold'}, 'description': 'Threshold lines drawn horizontally across the chart.'}, 'chartOptions': {'$ref': '#/$defs/ChartOptions', 'description': 'Display options for the chart.'}, 'timeshiftDuration': {'type': 'string', 'format': 'google-duration', 'description': 'The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.'}}, 'description': 'A chart that displays data on a 2D (X and Y axes) plane.'}, 'Interval': {'type': 'object', 'properties': {'endTime': {'type': 'string', 'format': 'date-time', 'description': 'Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.'}, 'startTime': {'type': 'string', 'format': 'date-time', 'description': 'Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.'}}, 'description': 'Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.'}, 'PieChart': {'type': 'object', 'properties': {'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/PieChartDataSet'}, 'description': "Required. The queries for the chart's data."}, 'chartType': {'enum': ['PIE_CHART_TYPE_UNSPECIFIED', 'PIE', 'DONUT'], 'type': 'string', 'description': 'Required. Indicates the visualization type for the PieChart.', 'x-google-enum-descriptions': ['The zero value. No type specified. Do not use.', 'A Pie type PieChart.', 'Similar to PIE, but the DONUT type PieChart has a hole in the middle.']}, 'showLabels': {'type': 'boolean', 'description': "Optional. Indicates whether or not the pie chart should show slices' labels"}}, 'description': 'A widget that displays timeseries data as a pie or a donut.'}, 'Breakdown': {'type': 'object', 'properties': {'limit': {'type': 'integer', 'format': 'int32', 'description': 'Required. A limit to the number of breakdowns. If set to zero then all possible breakdowns are applied. The list of breakdowns is dependent on the value of the `sort_order` field.'}, 'column': {'type': 'string', 'description': 'Required. The name of the column in the dataset containing the breakdown values.'}, 'sortOrder': {'enum': ['SORT_ORDER_UNSPECIFIED', 'SORT_ORDER_NONE', 'SORT_ORDER_ASCENDING', 'SORT_ORDER_DESCENDING'], 'type': 'string', 'description': 'Required. The sort order is applied to the values of the breakdown column.', 'x-google-enum-descriptions': ['An unspecified sort order. This option is invalid when sorting is required.', 'No sorting is applied.', 'The lowest-valued entries are selected first.', 'The highest-valued entries are selected first.']}, 'aggregationFunction': {'$ref': '#/$defs/AggregationFunction', 'description': 'Required. The Aggregation function is applied across all data in each breakdown created.'}}, 'description': 'Preview: A breakdown is an aggregation applied to the measures over a specified column. A breakdown can result in multiple series across a category for the provided measure. This is a preview feature and may be subject to change before final release.'}, 'Dashboard': {'type': 'object', 'properties': {'etag': {'type': 'string', 'description': '`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. An `etag` is returned in the response to `GetDashboard`, and users are expected to put that etag in the request to `UpdateDashboard` to ensure that their change will be applied to the same version of the Dashboard configuration. The field should not be passed during dashboard creation.'}, 'name': {'type': 'string', 'description': 'Identifier. The resource name of the dashboard.', 'x-google-identifier': True}, 'labels': {'type': 'object', 'description': 'Labels applied to the dashboard', 'additionalProperties': {'type': 'string'}}, 'rowLayout': {'$ref': '#/$defs/RowLayout', 'description': 'The content is divided into equally spaced rows and the widgets are arranged horizontally.'}, 'gridLayout': {'$ref': '#/$defs/GridLayout', 'description': 'Content is arranged with a basic layout that re-flows a simple list of informational elements like widgets or tiles.'}, 'annotations': {'$ref': '#/$defs/DashboardAnnotations', 'description': 'Configuration for event annotations to display on this dashboard.'}, 'displayName': {'type': 'string', 'description': 'Required. The mutable, human-readable name.'}, 'columnLayout': {'$ref': '#/$defs/ColumnLayout', 'description': 'The content is divided into equally spaced columns and the widgets are arranged vertically.'}, 'mosaicLayout': {'$ref': '#/$defs/MosaicLayout', 'description': 'The content is arranged as a grid of tiles, with each content widget occupying one or more grid blocks.'}, 'dashboardFilters': {'type': 'array', 'items': {'$ref': '#/$defs/DashboardFilter'}, 'description': 'Filters to reduce the amount of data charted based on the filter criteria.'}}, 'description': 'A Google Stackdriver dashboard. Dashboards define the content and layout of pages in the Stackdriver web application.'}, 'Dimension': {'type': 'object', 'properties': {'xMax': {'type': 'number', 'format': 'double', 'description': 'The maximum value for the x-axis.'}, 'xMin': {'type': 'number', 'format': 'double', 'description': 'The minimum value for the x-axis.'}, 'column': {'type': 'string', 'description': 'Required. For widgets that use SQL queries, set the value to the name of the column in the results table whose data is charted. For a histogram that uses a time series query, set the value of this field to `metric_value`.'}, 'sortOrder': {'enum': ['SORT_ORDER_UNSPECIFIED', 'SORT_ORDER_NONE', 'SORT_ORDER_ASCENDING', 'SORT_ORDER_DESCENDING'], 'type': 'string', 'description': 'The sort order applied to the sort column.', 'x-google-enum-descriptions': ['An unspecified sort order. This option is invalid when sorting is required.', 'No sorting is applied.', 'The lowest-valued entries are selected first.', 'The highest-valued entries are selected first.']}, 'columnType': {'type': 'string', 'description': 'Optional. The type of the dimension column. This is relevant only if one of the bin_size fields is set. If it is empty, the type TIMESTAMP or INT64 will be assumed based on which bin_size field is set. If populated, this should be set to one of the following types: DATE, TIME, DATETIME, TIMESTAMP, BIGNUMERIC, INT64, NUMERIC, FLOAT64.'}, 'sortColumn': {'type': 'string', 'description': 'The column name to sort on for binning. This column can be the same column as this dimension or any other column used as a measure in the results. If `sort_order` is set to `NONE`, then this value is not used.'}, 'maxBinCount': {'type': 'integer', 'format': 'int32', 'description': 'For widgets that use SQL queries, the limit to the number of bins to generate. When 0 is specified, the maximum count is not enforced. For a histogram that uses a time series query, the exact number of bins to generate. If not specified or the value is 0, then the histogram determines the number of bins to use.'}, 'timeBinSize': {'type': 'string', 'format': 'google-duration', 'description': '`time_bin_size` is used when the data type of the specified dimension is a time type and the bin size is determined by a time duration. If `column_type` is `DATE`, this must be a whole value multiple of 1 day. If `column_type` is `TIME`, this must be less than or equal to 24 hours.'}, 'floatBinSize': {'type': 'number', 'format': 'double', 'description': 'Optional. `float_bin_size` is used when the column type used for a dimension is a floating point numeric column.'}, 'numericBinSize': {'type': 'integer', 'format': 'int32', 'description': '`numeric_bin_size` is used when the column type used for a dimension is numeric or string. If the `column` field is set to `metric_value`, then `numericBinSize` overrides `maxBinCount`.'}}, 'description': 'A chart dimension. Dimensions are a structured label, class, or category for a set of measurements in your data.'}, 'GaugeView': {'type': 'object', 'properties': {'lowerBound': {'type': 'number', 'format': 'double', 'description': 'The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.'}, 'upperBound': {'type': 'number', 'format': 'double', 'description': 'The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.'}}, 'description': "A gauge chart shows where the current value sits within a pre-defined range. The upper and lower bounds should define the possible range of values for the scorecard's query (inclusive)."}, 'LogsPanel': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.'}, 'resourceNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The names of logging resources to collect logs for. Currently projects and storage views are supported. If empty, the widget will default to the host project.'}}, 'description': 'A widget that displays a stream of log.'}, 'Parameter': {'type': 'object', 'properties': {'intValue': {'type': 'string', 'format': 'int64', 'description': 'An integer parameter value.'}, 'doubleValue': {'type': 'number', 'format': 'double', 'description': 'A floating-point parameter value.'}}, 'description': 'Preview: Parameter value applied to the aggregation function. This is a preview feature and may be subject to change before final release.'}, 'RatioPart': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.'}, 'aggregation': {'$ref': '#/$defs/Aggregation', 'description': 'By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.'}}, 'description': 'Describes a query to build the numerator or denominator of a TimeSeriesFilterRatio.'}, 'RowLayout': {'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'$ref': '#/$defs/Row'}, 'description': 'The rows of content to display.'}}, 'description': 'A simplified layout that divides the available space into rows and arranges a set of widgets horizontally in each row.'}, 'Scorecard': {'type': 'object', 'properties': {'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'Optional. A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.'}, 'blankView': {'$ref': '#/$defs/Empty', 'description': 'Will cause the `Scorecard` to show only the value, with no indicator to its value relative to its thresholds.'}, 'gaugeView': {'$ref': '#/$defs/GaugeView', 'description': 'Will cause the scorecard to show a gauge chart.'}, 'breakdowns': {'type': 'array', 'items': {'$ref': '#/$defs/Breakdown'}, 'description': 'Optional. The collection of breakdowns to be applied to the dataset. A breakdown is a way to slice the data. For example, you can break down the data by region.'}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/Dimension'}, 'description': 'Optional. A dimension is a structured label, class, or category for a set of measurements in your data.'}, 'thresholds': {'type': 'array', 'items': {'$ref': '#/$defs/Threshold'}, 'description': "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.) As an example, consider a scorecard with the following four thresholds: ``` { value: 90, category: 'DANGER', trigger: 'ABOVE', }, { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } ``` Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state."}, 'sparkChartView': {'$ref': '#/$defs/SparkChartView', 'description': 'Will cause the scorecard to show a spark chart.'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. Fields for querying time series data from the Stackdriver metrics API.'}}, 'description': 'A widget showing the latest value of a metric, and how this value relates to one or more thresholds.'}, 'TextStyle': {'type': 'object', 'properties': {'padding': {'enum': ['PADDING_SIZE_UNSPECIFIED', 'P_EXTRA_SMALL', 'P_SMALL', 'P_MEDIUM', 'P_LARGE', 'P_EXTRA_LARGE'], 'type': 'string', 'description': 'The amount of padding around the widget', 'x-google-enum-descriptions': ['No padding size specified, will default to P_EXTRA_SMALL', 'Extra small padding', 'Small padding', 'Medium padding', 'Large padding', 'Extra large padding']}, 'fontSize': {'enum': ['FONT_SIZE_UNSPECIFIED', 'FS_EXTRA_SMALL', 'FS_SMALL', 'FS_MEDIUM', 'FS_LARGE', 'FS_EXTRA_LARGE'], 'type': 'string', 'description': 'Font sizes for both the title and content. The title will still be larger relative to the content.', 'x-google-enum-descriptions': ['No font size specified, will default to FS_LARGE', 'Extra small font size', 'Small font size', 'Medium font size', 'Large font size', 'Extra large font size']}, 'textColor': {'type': 'string', 'description': 'The text color as a hex string. "#RRGGBB" or "#RGB"'}, 'backgroundColor': {'type': 'string', 'description': 'The background color as a hex string. "#RRGGBB" or "#RGB"'}, 'pointerLocation': {'enum': ['POINTER_LOCATION_UNSPECIFIED', 'PL_TOP', 'PL_RIGHT', 'PL_BOTTOM', 'PL_LEFT', 'PL_TOP_LEFT', 'PL_TOP_RIGHT', 'PL_RIGHT_TOP', 'PL_RIGHT_BOTTOM', 'PL_BOTTOM_RIGHT', 'PL_BOTTOM_LEFT', 'PL_LEFT_BOTTOM', 'PL_LEFT_TOP'], 'type': 'string', 'description': 'The pointer location for this widget (also sometimes called a "tail")', 'x-google-enum-descriptions': ['No visual pointer', 'Placed in the middle of the top of the widget', 'Placed in the middle of the right side of the widget', 'Placed in the middle of the bottom of the widget', 'Placed in the middle of the left side of the widget', 'Placed on the left side of the top of the widget', 'Placed on the right side of the top of the widget', 'Placed on the top of the right side of the widget', 'Placed on the bottom of the right side of the widget', 'Placed on the right side of the bottom of the widget', 'Placed on the left side of the bottom of the widget', 'Placed on the bottom of the left side of the widget', 'Placed on the top of the left side of the widget']}, 'verticalAlignment': {'enum': ['VERTICAL_ALIGNMENT_UNSPECIFIED', 'V_TOP', 'V_CENTER', 'V_BOTTOM'], 'type': 'string', 'description': 'The vertical alignment of both the title and content', 'x-google-enum-descriptions': ['No vertical alignment specified, will default to V_TOP', 'Top-align', 'Center-align', 'Bottom-align']}, 'horizontalAlignment': {'enum': ['HORIZONTAL_ALIGNMENT_UNSPECIFIED', 'H_LEFT', 'H_CENTER', 'H_RIGHT'], 'type': 'string', 'description': 'The horizontal alignment of both the title and content', 'x-google-enum-descriptions': ['No horizontal alignment specified, will default to H_LEFT', 'Left-align', 'Center-align', 'Right-align']}}, 'description': 'Properties that determine how the title and content are styled'}, 'Threshold': {'type': 'object', 'properties': {'color': {'enum': ['COLOR_UNSPECIFIED', 'YELLOW', 'RED'], 'type': 'string', 'description': 'The state color for this threshold. Color is not allowed in a XyChart.', 'x-google-enum-descriptions': ['Color is unspecified. Not allowed in well-formed requests.', 'Crossing the threshold is "concerning" behavior.', 'Crossing the threshold is "emergency" behavior.']}, 'label': {'type': 'string', 'description': 'A label for the threshold.'}, 'value': {'type': 'number', 'format': 'double', 'description': 'The value of the threshold. The value should be defined in the native scale of the metric.'}, 'direction': {'enum': ['DIRECTION_UNSPECIFIED', 'ABOVE', 'BELOW'], 'type': 'string', 'description': 'The direction for the current threshold. Direction is not allowed in a XyChart.', 'x-google-enum-descriptions': ['Not allowed in well-formed requests.', 'The threshold will be considered crossed if the actual value is above the threshold value.', 'The threshold will be considered crossed if the actual value is below the threshold value.']}, 'targetAxis': {'enum': ['TARGET_AXIS_UNSPECIFIED', 'Y1', 'Y2'], 'type': 'string', 'description': 'The target axis to use for plotting the threshold. Target axis is not allowed in a Scorecard.', 'x-google-enum-descriptions': ['The target axis was not specified. Defaults to Y1.', 'The y_axis (the right axis of chart).', 'The y2_axis (the left axis of chart).']}}, 'description': 'Defines a threshold for categorizing time series values.'}, 'TimeRange': {'type': 'object', 'properties': {'absoluteWindow': {'$ref': '#/$defs/Interval', 'description': 'Optional. Represents a time range with absolute start and end times. The start time is inclusive, and the end time is exclusive.'}, 'relativeDuration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Specifies the duration used to shift the data relative to current time as the end time. The duration must be positive.'}}, 'description': 'Represents a time range.'}, 'AlertChart': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Required. The resource name of the alert policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]'}}, 'description': 'A chart that displays alert policy data.'}, 'GridLayout': {'type': 'object', 'properties': {'columns': {'type': 'string', 'format': 'int64', 'description': "The number of columns into which the view's width is divided. If omitted or set to zero, a system default will be used while rendering."}, 'widgets': {'type': 'array', 'items': {'$ref': '#/$defs/Widget'}, 'description': 'The informational elements that are arranged into the columns row-first.'}}, 'description': 'A basic layout divides the available space into vertical columns of equal width and arranges a list of widgets using a row-first strategy.'}, 'TraceQuery': {'type': 'object', 'properties': {'spanFilters': {'$ref': '#/$defs/SpanFilters', 'description': 'First version of span filtering that we will support. Required.'}, 'spanDataValue': {'enum': ['SPAN_DATA_VALUE_UNSPECIFIED', 'SPAN_COUNT', 'SPAN_DURATION', 'SPAN_DURATION_PERCENTILES'], 'type': 'string', 'description': 'The type of span data value to be displayed on the chart. Required.', 'x-google-enum-descriptions': ['We are required to have an UNSPECIFIED value for enums. This should not be used in practice.', 'Span count data value', 'Span duration data value', 'Span duration percentiles data value']}, 'resourceContainer': {'type': 'string', 'description': "Optional. The resource name of the project or Trace scope to fetch data from. If empty, the widget will default to the project's default Trace scope. If scope cannot be determined, then we fallback to the current project. Optional."}}, 'description': 'LINT.IfChange Preview: Query for traces. This is a preview feature and may be subject to change before final release.'}, 'Aggregation': {'type': 'object', 'properties': {'groupByFields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.'}, 'alignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored. The maximum value of the `alignment_period` is 2 years, or 104 weeks.'}, 'perSeriesAligner': {'enum': ['ALIGN_NONE', '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'], 'type': 'string', 'description': 'An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No alignment. Raw data is returned. Not valid if cross-series reduction is requested. The `value_type` of the result is the same as the `value_type` of the input.', 'Align and convert to DELTA. The output is `delta = y1 - y0`. This alignment is valid for CUMULATIVE and `DELTA` metrics. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align and convert to a rate. The result is computed as `rate = (y1 - y0)/(t1 - t0)`, or "delta over time". Think of this aligner as providing the slope of the line that passes through the value at the start and at the end of the `alignment_period`. This aligner is valid for `CUMULATIVE` and `DELTA` metrics with numeric values. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The output is a `GAUGE` metric with `value_type` `DOUBLE`. If, by "rate", you mean "percentage change", see the `ALIGN_PERCENT_CHANGE` aligner instead.', 'Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for `GAUGE` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for `GAUGE` metrics. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the minimum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the maximum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the mean value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is `DOUBLE`.', 'Align the time series by returning the number of values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric or Boolean values. The `value_type` of the aligned result is `INT64`.', 'Align the time series by returning the sum of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric and distribution values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the output is `DOUBLE`.', 'Align the time series by returning the number of `True` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the number of `False` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the ratio of the number of `True` values to the total number of values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align and convert to a percentage change. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. This alignment returns `((current - previous)/previous) * 100`, where the value of `previous` is determined based on the `alignment_period`. If the values of `current` and `previous` are both 0, then the returned value is 0. If only `previous` is 0, the returned value is infinity. A 10-minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very short-lived spikes. The moving mean is only applicable for data whose values are `>= 0`. Any values `< 0` are treated as a missing datapoint, and are ignored. While `DELTA` metrics are accepted by this alignment, special care should be taken that the values for the metric will always be positive. The output is a `GAUGE` metric with `value_type` `DOUBLE`.']}, 'crossSeriesReducer': {'enum': ['REDUCE_NONE', 'REDUCE_MEAN', 'REDUCE_MIN', 'REDUCE_MAX', 'REDUCE_SUM', 'REDUCE_STDDEV', 'REDUCE_COUNT', 'REDUCE_COUNT_TRUE', 'REDUCE_COUNT_FALSE', 'REDUCE_FRACTION_TRUE', 'REDUCE_PERCENTILE_99', 'REDUCE_PERCENTILE_95', 'REDUCE_PERCENTILE_50', 'REDUCE_PERCENTILE_05'], 'type': 'string', 'description': 'The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No cross-time series reduction. The output of the `Aligner` is returned.', 'Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The `value_type` of the output is DOUBLE.', 'Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the sum across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric and distribution values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric or distribution values. The `value_type` of the output is `DOUBLE`.', 'Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of numeric, Boolean, distribution, and string `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `True`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `False`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the ratio of the number of `True`-valued data points to the total number of data points for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Reduce by computing the [99th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [95th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [50th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [5th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.']}}, 'description': 'Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is _aligned_ to the same time interval boundaries, then the set of time series is optionally _reduced_ in number. Alignment consists of applying the `per_series_aligner` operation to each time series after its data has been divided into regular `alignment_period` time intervals. This process takes _all_ of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period. Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a `cross_series_reducer` to all the time series, optionally sorting the time series into subsets with `group_by_fields`, and applying the reducer to each subset. The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see [Filtering and aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).'}, 'SpanFilters': {'type': 'object', 'properties': {'kinds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the kinds in the list. Multiple values will be OR'd together."}, 'status': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the statuses in the list. Multiple values will be OR'd together."}, 'services': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the services in the list. Multiple values will be OR'd together."}, 'attributes': {'type': 'array', 'items': {'$ref': '#/$defs/SpanAttributeFilter'}, 'description': "Optional. List of span attribute filters. Each SpanAttributeFilter key must be unique. Multiple attribute filters will be AND'd together."}, 'isRootSpan': {'type': 'boolean', 'description': 'Optional. Filters for root spans only if set to true. A root span is a span without a defined parent span ID.'}, 'maxDuration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Filtering for spans with a maximum duration.'}, 'minDuration': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. Filtering for spans with a minimum duration.'}, 'displayNames': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the span display names in the list. Multiple values will be OR'd together."}, 'apphubServices': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Filtering for spans containing one of the Apphub service IDs in the list. Multiple values will be OR\'d together. Example: ["service-id1", "service-id2"]'}, 'applicationIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Filtering for spans containing one of the Apphub Application IDs in the list. Multiple values will be OR'd together."}, 'apphubWorkloads': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional. Filtering for spans containing one of the Apphub workload IDs in the list. Multiple values will be OR\'d together. Example: ["workload-id1", "workload-id2"]'}}, 'description': 'First version of span filtering that is supported by the Trace component.'}, 'StringArray': {'type': 'object', 'properties': {'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The values of the array'}}, 'description': 'An array of strings'}, 'ChartOptions': {'type': 'object', 'properties': {'mode': {'enum': ['MODE_UNSPECIFIED', 'COLOR', 'X_RAY', 'STATS'], 'type': 'string', 'description': 'The chart mode.', 'x-google-enum-descriptions': ['Mode is unspecified. The view will default to `COLOR`.', 'The chart distinguishes data series using different color. Line colors may get reused when there are many lines in the chart.', 'The chart uses the Stackdriver x-ray mode, in which each data set is plotted using the same semi-transparent color.', 'The chart displays statistics such as average, median, 95th percentile, and more.']}, 'displayHorizontal': {'type': 'boolean', 'description': 'Preview: Configures whether the charted values are shown on the horizontal or vertical axis. By default, values are represented the vertical axis. This is a preview feature and may be subject to change before final release.'}}, 'description': 'Options to control visual rendering of a chart.'}, 'ColumnLayout': {'type': 'object', 'properties': {'columns': {'type': 'array', 'items': {'$ref': '#/$defs/Column'}, 'description': 'The columns of content to display.'}}, 'description': 'A simplified layout that divides the available space into vertical columns and arranges a set of widgets vertically in each column.'}, 'IncidentList': {'type': 'object', 'properties': {'policyNames': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. A list of alert policy names to filter the incident list by. Don't include the project ID prefix in the policy name. For example, use `alertPolicies/utilization`."}, 'monitoredResources': {'type': 'array', 'items': {'$ref': '#/$defs/MonitoredResource'}, 'description': "Optional. The monitored resource for which incidents are listed. The resource doesn't need to be fully specified. That is, you can specify the resource type but not the values of the resource labels. The resource type and labels are used for filtering."}}, 'description': 'A widget that displays a list of incidents'}, 'MosaicLayout': {'type': 'object', 'properties': {'tiles': {'type': 'array', 'items': {'$ref': '#/$defs/Tile'}, 'description': 'The tiles to display.'}, 'columns': {'type': 'integer', 'format': 'int32', 'description': 'The number of columns in the mosaic grid. The number of columns must be between 1 and 48, inclusive.'}}, 'description': 'A mosaic layout divides the available space into a grid of blocks, and overlays the grid with tiles. Unlike `GridLayout`, tiles may span multiple grid blocks and can be placed at arbitrary locations in the grid.'}, 'TableDataSet': {'type': 'object', 'properties': {'tableTemplate': {'type': 'string', 'description': 'Optional. A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label\'s value i.e. "${resource.labels.project_id}."'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. Fields for querying time series data from the Stackdriver metrics API.'}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.'}, 'tableDisplayOptions': {'$ref': '#/$defs/TableDisplayOptions', 'description': 'Optional. Table display options for configuring how the table is rendered.'}}, 'description': 'Groups a time series query definition with table options.'}, 'FilterControl': {'type': 'object', 'properties': {'templateVariable': {'type': 'string', 'description': 'Name of the template variable the widget affects.'}}, 'description': 'A widget that displays an input field to change the value of a template variable.'}, 'SectionHeader': {'type': 'object', 'properties': {'subtitle': {'type': 'string', 'description': 'The subtitle of the section'}, 'dividerBelow': {'type': 'boolean', 'description': 'Whether to insert a divider below the section in the table of contents'}}, 'description': 'A widget that defines a new section header. Sections populate a table of contents and allow easier navigation of long-form content.'}, 'ColumnSettings': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Required. The id of the column.'}, 'visible': {'type': 'boolean', 'description': 'Required. Whether the column should be visible on page load.'}, 'alignment': {'enum': ['CELL_ALIGNMENT_UNSPECIFIED', 'LEFT', 'CENTER', 'RIGHT'], 'type': 'string', 'description': 'Optional. Whether the column should be left / middle / right aligned', 'x-google-enum-descriptions': ['No horizontal alignment specified; fall back to the default behavior. Label values are left aligned. Numeric values are right aligned.', 'Left-align', 'Center-align', 'Right-align']}, 'thresholds': {'type': 'array', 'items': {'$ref': '#/$defs/Threshold'}, 'description': "Optional. The thresholds used to determine how the table cell should be rendered given the time series' current value."}, 'displayName': {'type': 'string', 'description': 'Optional. Display name of the column'}}, 'description': "The persistent settings for a table's columns."}, 'SparkChartView': {'type': 'object', 'properties': {'sparkChartType': {'enum': ['SPARK_CHART_TYPE_UNSPECIFIED', 'SPARK_LINE', 'SPARK_BAR'], 'type': 'string', 'description': 'Required. The type of sparkchart to show in this chartView.', 'x-google-enum-descriptions': ['Not allowed in well-formed requests.', 'The sparkline will be rendered as a small line chart.', 'The sparkbar will be rendered as a small bar chart.']}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint. For PromQL queries, this field is used to set the minimum interval for the query `step`, controlling data granularity. Larger values can improve performance on long time ranges. See Querying Basics and Range Queries for more details on the PromQL `step`. [1]: https://prometheus.io/docs/prometheus/latest/querying/basics/ [2]: https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries'}}, 'description': "A sparkChart is a small chart suitable for inclusion in a table-cell or inline in text. This message contains the configuration for a sparkChart to show up on a Scorecard, showing recent trends of the scorecard's timeseries."}, 'TreemapDataSet': {'type': 'object', 'properties': {'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'Optional. A collection of measures. A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.'}, 'breakdowns': {'type': 'array', 'items': {'$ref': '#/$defs/Breakdown'}, 'description': 'Optional. The collection of breakdowns to be applied to the dataset. A breakdown is a way to slice the data. For example, you can break down the data by region.'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. The query that fetches the relevant data. See `google.monitoring.dashboard.v1.TimeSeriesQuery`'}}, 'description': 'The data represented by the treemap. Needs to include the data itself, plus rules on how to organize it hierarchically.'}, 'DashboardFilter': {'type': 'object', 'properties': {'labelKey': {'type': 'string', 'description': 'Optional. The key for the label. This must be omitted if the filter_type is VALUE_ONLY but is required otherwise.'}, 'valueType': {'enum': ['VALUE_TYPE_UNSPECIFIED', 'STRING', 'STRING_ARRAY'], 'type': 'string', 'description': 'The type of the filter value. If value_type is not provided, it will be inferred from the default_value. If neither value_type nor default_value is provided, value_type will be set to STRING by default.', 'x-google-enum-descriptions': ['Value type is unspecified', 'String type', 'String array type']}, 'filterType': {'enum': ['FILTER_TYPE_UNSPECIFIED', 'RESOURCE_LABEL', 'METRIC_LABEL', 'USER_METADATA_LABEL', 'SYSTEM_METADATA_LABEL', 'GROUP', 'VALUE_ONLY'], 'type': 'string', 'description': 'The specified filter type', 'x-google-enum-descriptions': ['Filter type is unspecified. This is not valid in a well-formed request.', 'Filter on a resource label value', 'Filter on a metrics label value', 'Filter on a user metadata label value', 'Filter on a system metadata label value', 'Filter on a group id', 'Filter that only contains a value. The label_key field must be unset for filters of this type.']}, 'stringArray': {'$ref': '#/$defs/StringArray', 'description': 'A list of possible string values for the filter'}, 'stringValue': {'type': 'string', 'description': 'A variable-length string value. If this field is set, value_type must be set to STRING or VALUE_TYPE_UNSPECIFIED'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'A query to run to fetch possible values for the filter. Only OpsAnalyticsQueries are supported'}, 'stringArrayValue': {'$ref': '#/$defs/StringArray', 'description': 'An array of variable-length string values. If this field is set, value_type must be set to STRING_ARRAY or VALUE_TYPE_UNSPECIFIED'}, 'templateVariable': {'type': 'string', 'description': 'The placeholder text that can be referenced in a filter string or MQL query. If omitted, the dashboard filter will be applied to all relevant widgets in the dashboard.'}}, 'description': 'A filter to reduce the amount of data charted in relevant widgets.'}, 'EventAnnotation': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'string filtering the events - event dependant. Example values: "resource.labels.pod_name = \'pod-1\'" "protoPayload.authenticationInfo.principalEmail=\'user@example.com\'"'}, 'enabled': {'type': 'boolean', 'description': 'Whether or not to show the events on the dashboard by default'}, 'eventType': {'enum': ['EVENT_TYPE_UNSPECIFIED', 'GKE_WORKLOAD_DEPLOYMENT', 'GKE_POD_CRASH', 'GKE_POD_UNSCHEDULABLE', 'GKE_CONTAINER_CREATION_FAILED', 'GKE_CLUSTER_CREATE_DELETE', 'GKE_CLUSTER_UPDATE', 'GKE_NODE_POOL_UPDATE', 'GKE_CLUSTER_AUTOSCALER', 'GKE_POD_AUTOSCALER', 'VM_TERMINATION', 'VM_GUEST_OS_ERROR', 'VM_START_FAILED', 'MIG_UPDATE', 'MIG_AUTOSCALER', 'CLOUD_RUN_DEPLOYMENT', 'CLOUD_SQL_FAILOVER', 'CLOUD_SQL_START_STOP', 'CLOUD_SQL_STORAGE', 'UPTIME_CHECK_FAILURE', 'CLOUD_ALERTING_ALERT', 'SERVICE_HEALTH_INCIDENT', 'SAP_BACKINT', 'SAP_AVAILABILITY', 'SAP_OPERATIONS', 'INTERCONNECT_MAINTENANCE_STARTED', 'INTERCONNECT_MAINTENANCE_COMPLETED', 'VPN_TRAFFIC_SELECTOR_NARROWING', 'VPN_MAINTENANCE'], 'type': 'string', 'description': 'The type of event to display.', 'x-google-enum-descriptions': ['No event type specified.', 'Patch/update of GKE workload.', 'Crash events for a GKE Pod.', 'Scheduling failures for GKE Pods.', 'Failure to create a GKE container.', 'Create/delete of a GKE cluster.', 'Update of a GKE cluster.', 'Update of a GKE node pool.', 'GKE cluster autoscaler event.', 'GKE pod autoscaler event.', 'Termination of a virtual machine.', 'Guest OS error on a virtual machine.', 'Start failure on a virtual machine.', 'Update of a managed instance group.', 'Autoscaler event for a managed instance group.', 'New deployment of a Cloud Run service.', 'Failover of a Cloud SQL instance.', 'Start/stop of a Cloud SQL instance.', 'Storage event for a Cloud SQL instance.', 'Failure of a Cloud Monitoring uptime check.', 'Alerts from Cloud Alerting', 'Incidents from Service Health', 'Agent for SAP Backint related events.', 'Agent for SAP availability related events.', 'Agent for SAP operations related events.', 'Interconnect maintenance started event.', 'Interconnect maintenance completed event.', 'VPN traffic selector narrowing event.', 'VPN maintenance event.']}, 'displayName': {'type': 'string', 'description': 'Solely for UI display. Should not be used programmatically.'}, 'resourceNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Per annotation level override for the names of logging resources to search for events. Currently only projects are supported. If both this field and the per annotation field is empty, it will default to the host project. Limit: 50 projects. For example: “projects/another-project-id”'}}, 'description': 'Annotation configuration for one event type on a dashboard'}, 'PieChartDataSet': {'type': 'object', 'properties': {'measures': {'type': 'array', 'items': {'$ref': '#/$defs/Measure'}, 'description': 'A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.'}, 'dimensions': {'type': 'array', 'items': {'$ref': '#/$defs/Dimension'}, 'description': 'A dimension is a structured label, class, or category for a set of measurements in your data.'}, 'timeSeriesQuery': {'$ref': '#/$defs/TimeSeriesQuery', 'description': 'Required. The query for the PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`.'}, 'sliceNameTemplate': {'type': 'string', 'description': "Optional. A template for the name of the slice. This name will be displayed in the legend and the tooltip of the pie chart. It replaces the auto-generated names for the slices. For example, if the template is set to `${resource.labels.zone}`, the zone's value will be used for the name instead of the default name."}, 'minAlignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.'}}, 'description': 'Groups a time series query definition.'}, 'SingleViewGroup': {'type': 'object', 'properties': {'displayType': {'enum': ['DISPLAY_TYPE_UNSPECIFIED', 'DROPDOWN', 'TAB'], 'type': 'string', 'description': 'Optional. Determines how the widget selector will be displayed.', 'x-google-enum-descriptions': ['Display type is not specified, defaults to DROPDOWN.', 'Renders the widget selector as a dropdown.', 'Renders the widget selector as a tab list.']}}, 'description': 'A widget that groups the other widgets by using a dropdown menu. All widgets that are within the area spanned by the grouping widget are considered member widgets.'}, 'TimeSeriesQuery': {'type': 'object', 'properties': {'traceQuery': {'$ref': '#/$defs/TraceQuery', 'description': 'Optional. Preview: Query for traces. This is a preview feature and may be subject to change before final release.'}, 'unitOverride': {'type': 'string', 'description': 'The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.'}, 'prometheusQuery': {'type': 'string', 'description': 'A query used to fetch time series with PromQL.'}, 'timeSeriesFilter': {'$ref': '#/$defs/TimeSeriesFilter', 'description': 'Filter parameters to fetch time series.'}, 'opsAnalyticsQuery': {'$ref': '#/$defs/OpsAnalyticsQuery', 'description': 'Preview: A query used to fetch a time series, category series, or numeric series with SQL. This is a preview feature and may be subject to change before final release.'}, 'outputFullDuration': {'type': 'boolean', 'description': "Optional. If set, Cloud Monitoring will treat the full query duration as the alignment period so that there will be only 1 output value. *Note: This could override the configured alignment period except for the cases where a series of data points are expected, like - XyChart - Scorecard's spark chart"}, 'timeSeriesFilterRatio': {'$ref': '#/$defs/TimeSeriesFilterRatio', 'description': 'Parameters to fetch a ratio between two time series filters.'}, 'timeSeriesQueryLanguage': {'type': 'string', 'description': 'A query used to fetch time series with MQL.'}}, 'description': 'TimeSeriesQuery collects the set of supported methods for querying time series data from the Stackdriver metrics API.'}, 'TimeSeriesTable': {'type': 'object', 'properties': {'dataSets': {'type': 'array', 'items': {'$ref': '#/$defs/TableDataSet'}, 'description': 'Required. The data displayed in this table.'}, 'columnSettings': {'type': 'array', 'items': {'$ref': '#/$defs/ColumnSettings'}, 'description': 'Optional. The list of the persistent column settings for the table.'}, 'metricVisualization': {'enum': ['METRIC_VISUALIZATION_UNSPECIFIED', 'NUMBER', 'BAR'], 'type': 'string', 'description': 'Optional. Store rendering strategy', 'x-google-enum-descriptions': ['Unspecified state', 'Default text rendering', 'Horizontal bar rendering']}}, 'description': 'A table that displays time series data.'}, 'CollapsibleGroup': {'type': 'object', 'properties': {'collapsed': {'type': 'boolean', 'description': 'The collapsed state of the widget on first page load.'}}, 'description': 'A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets.'}, 'TimeSeriesFilter': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.'}, 'aggregation': {'$ref': '#/$defs/Aggregation', 'description': 'By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.'}, 'pickTimeSeriesFilter': {'$ref': '#/$defs/PickTimeSeriesFilter', 'description': 'Ranking based time series filter.'}, 'secondaryAggregation': {'$ref': '#/$defs/Aggregation', 'description': 'Apply a second aggregation after `aggregation` is applied.'}, 'statisticalTimeSeriesFilter': {'$ref': '#/$defs/StatisticalTimeSeriesFilter', 'deprecated': True, 'description': 'Statistics based time series filter. Note: This field is deprecated and completely ignored by the API.'}}, 'description': 'A filter that defines a subset of time series data that is displayed in a widget. Time series data is fetched using the [`ListTimeSeries`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) method.'}, 'MonitoredResource': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The monitored resource type. This field must match the `type` field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is `gce_instance`. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).'}, 'labels': {'type': 'object', 'description': 'Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels `"project_id"`, `"instance_id"`, and `"zone"`.', 'additionalProperties': {'type': 'string'}}}, 'description': 'An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The `type` field identifies a MonitoredResourceDescriptor object that describes the resource\'s schema. Information in the `labels` field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for `"gce_instance"` has labels `"project_id"`, `"instance_id"` and `"zone"`: { "type": "gce_instance", "labels": { "project_id": "my-project", "instance_id": "12345678901234", "zone": "us-central1-a" }}'}, 'OpsAnalyticsQuery': {'type': 'object', 'properties': {'sql': {'type': 'string', 'description': 'A SQL query to fetch time series, category series, or numeric series data.'}}, 'description': 'Preview: A query that produces an aggregated response and supporting data. This is a preview feature and may be subject to change before final release.'}, 'AggregationFunction': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The type of aggregation function, must be one of the following: * "none" - no function. * "percentile" - APPROX_QUANTILES() - 1 parameter numeric value * "average" - AVG() * "count" - COUNT() * "count-distinct" - COUNT(DISTINCT) * "count-distinct-approx" - APPROX_COUNT_DISTINCT() * "max" - MAX() * "min" - MIN() * "sum" - SUM()'}, 'parameters': {'type': 'array', 'items': {'$ref': '#/$defs/Parameter'}, 'description': 'Optional. Parameters applied to the aggregation function. Only used for functions that require them.'}}, 'description': 'Preview: An identifier for an aggregation function. Aggregation functions are SQL functions that group or transform data from multiple points to a single point. This is a preview feature and may be subject to change before final release.'}, 'ErrorReportingPanel': {'type': 'object', 'properties': {'services': {'type': 'array', 'items': {'type': 'string'}, 'description': 'An identifier of the service, such as the name of the executable, job, or Google App Engine service name. This field is expected to have a low number of values that are relatively stable over time, as opposed to `version`, which can be changed whenever new code is deployed. Contains the service name for error reports extracted from Google App Engine logs or `default` if the App Engine default service is used.'}, 'versions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Represents the source code version that the developer provided, which could represent a version label or a Git SHA-1 hash, for example. For App Engine standard environment, the version is set to the version of the app.'}, 'projectNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The resource name of the Google Cloud Platform project. Written as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}` and `{projectNumber}` can be found in the [Google Cloud console](https://support.google.com/cloud/answer/6158840). Examples: `projects/my-project-123`, `projects/5551234`.'}}, 'description': 'A widget that displays a list of error groups.'}, 'SpanAttributeFilter': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Key of the attribute'}, 'value': {'type': 'array', 'items': {'type': 'string'}, 'description': "List of attribute values for given key. Multiple values will be OR'd together."}}, 'description': 'Span attribute key and list of values to be used for filtering.'}, 'TableDisplayOptions': {'type': 'object', 'properties': {'shownColumns': {'type': 'array', 'items': {'type': 'string'}, 'deprecated': True, 'description': 'Optional. This field is unused and has been replaced by TimeSeriesTable.column_settings'}}, 'description': 'Table display options that can be reused.'}, 'VisibilityCondition': {'type': 'object', 'properties': {'templateVariableCondition': {'$ref': '#/$defs/TemplateVariableCondition', 'description': 'A condition whose evaluation is based on the value of a template variable.'}}, 'description': 'Condition that determines whether the widget should be displayed.'}, 'ColumnSortingOptions': {'type': 'object', 'properties': {'column': {'type': 'string', 'description': 'Optional. Column name to sort data by'}, 'direction': {'enum': ['SORT_ORDER_UNSPECIFIED', 'SORT_ORDER_NONE', 'SORT_ORDER_ASCENDING', 'SORT_ORDER_DESCENDING'], 'type': 'string', 'description': 'Optional. A sorting direction that determines ascending or descending order. This is a legacy field kept for backwards compatibility with table.', 'x-google-enum-descriptions': ['An unspecified sort order. This option is invalid when sorting is required.', 'No sorting is applied.', 'The lowest-valued entries are selected first.', 'The highest-valued entries are selected first.']}}, 'description': "Data structure to storing column's sort strategy"}, 'DashboardAnnotations': {'type': 'object', 'properties': {'eventAnnotations': {'type': 'array', 'items': {'$ref': '#/$defs/EventAnnotation'}, 'description': 'List of annotation configurations for this dashboard. Each entry specifies one event type.'}, 'defaultResourceNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dashboard level defaults for names of logging resources to search for events. Currently only projects are supported. Each individual `EventAnnotation` may have its own overrides. If both this field and the per annotation field is empty, then the scoping project is used. Limit: 50 projects. For example: “projects/some-project-id”'}}, 'description': 'Dashboard-level configuration for annotations'}, 'PickTimeSeriesFilter': {'type': 'object', 'properties': {'interval': {'$ref': '#/$defs/Interval', 'description': 'Select the top N streams/time series within this time interval'}, 'direction': {'enum': ['DIRECTION_UNSPECIFIED', 'TOP', 'BOTTOM'], 'type': 'string', 'description': 'How to use the ranking to select time series that pass through the filter.', 'x-google-enum-descriptions': ['Not allowed. You must specify a different `Direction` if you specify a `PickTimeSeriesFilter`.', 'Pass the highest `num_time_series` ranking inputs.', 'Pass the lowest `num_time_series` ranking inputs.']}, 'numTimeSeries': {'type': 'integer', 'format': 'int32', 'description': 'How many time series to allow to pass through the filter.'}, 'rankingMethod': {'enum': ['METHOD_UNSPECIFIED', 'METHOD_MEAN', 'METHOD_MAX', 'METHOD_MIN', 'METHOD_SUM', 'METHOD_LATEST'], 'type': 'string', 'description': '`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series.', 'x-google-enum-descriptions': ['Not allowed. You must specify a different `Method` if you specify a `PickTimeSeriesFilter`.', 'Select the mean of all values.', 'Select the maximum value.', 'Select the minimum value.', 'Compute the sum of all values.', 'Select the most recent value.']}}, 'description': 'Describes a ranking-based time series filter. Each input time series is ranked with an aligner. The filter will allow up to `num_time_series` time series to pass through it, selecting them based on the relative ranking. For example, if `ranking_method` is `METHOD_MEAN`,`direction` is `BOTTOM`, and `num_time_series` is 3, then the 3 times series with the lowest mean values will pass through the filter.'}, 'TimeSeriesFilterRatio': {'type': 'object', 'properties': {'numerator': {'$ref': '#/$defs/RatioPart', 'description': 'The numerator of the ratio.'}, 'denominator': {'$ref': '#/$defs/RatioPart', 'description': 'The denominator of the ratio.'}, 'pickTimeSeriesFilter': {'$ref': '#/$defs/PickTimeSeriesFilter', 'description': 'Ranking based time series filter.'}, 'secondaryAggregation': {'$ref': '#/$defs/Aggregation', 'description': 'Apply a second aggregation after the ratio is computed.'}, 'statisticalTimeSeriesFilter': {'$ref': '#/$defs/StatisticalTimeSeriesFilter', 'deprecated': True, 'description': 'Statistics based time series filter. Note: This field is deprecated and completely ignored by the API.'}}, 'description': 'A pair of time series filters that define a ratio computation. The output time series is the pair-wise division of each aligned element from the numerator and denominator time series.'}, 'TemplateVariableCondition': {'type': 'object', 'properties': {'comparator': {'enum': ['COMPARATOR_UNSPECIFIED', 'REGEX_FULL_MATCH'], 'type': 'string', 'description': 'Comparator to use to evaluate whether the value of the template variable matches the template_variable_value. For example, if the comparator is REGEX_FULL_MATCH, template_variable_value would contain a regex that is matched against the value of the template variable.', 'x-google-enum-descriptions': ['No comparator specified. Behavior defaults to REGEX_FULL_MATCH.', 'Condition with this comparator evaluates to true when the value of the template variables matches the specified regex.']}, 'templateVariable': {'type': 'string', 'description': 'The template variable whose value is evaluated.'}, 'templateVariableValue': {'type': 'string', 'description': 'The value to compare the template variable to. For example, if the comparator is REGEX_FULL_MATCH, this field should contain a regex.'}}, 'description': 'A condition whose evaluation is based on the value of a template variable.'}, 'StatisticalTimeSeriesFilter': {'type': 'object', 'properties': {'numTimeSeries': {'type': 'integer', 'format': 'int32', 'description': 'How many time series to output.'}, 'rankingMethod': {'enum': ['METHOD_UNSPECIFIED', 'METHOD_CLUSTER_OUTLIER'], 'type': 'string', 'description': '`rankingMethod` is applied to a set of time series, and then the produced value for each individual time series is used to compare a given time series to others. These are methods that cannot be applied stream-by-stream, but rather require the full context of a request to evaluate time series.', 'x-google-enum-descriptions': ['Not allowed in well-formed requests.', 'Compute the outlier score of each stream.']}}, 'description': 'A filter that ranks streams based on their statistical relation to other streams in a request. Note: This field is deprecated and completely ignored by the API.'}}, 'properties': {'dashboards': {'type': 'array', 'items': {'$ref': '#/$defs/Dashboard'}, 'description': 'The list of requested dashboards.'}, 'nextPageToken': {'type': 'string', 'description': 'If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as `page_token` in the next call to this method.'}}, 'description': 'The `ListDashboards` request.'}
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]'}, 'filter': {'type': 'string', 'description': 'Optional. If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the [filter](https://cloud.google.com/monitoring/api/v3/filters) specifies which metric descriptors are to be returned. For example, the following filter matches all [custom metrics](https://cloud.google.com/monitoring/custom-metrics): metric.type = starts_with("custom.googleapis.com/")'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'Optional. A positive number that is the maximum number of results to return. The default and maximum value is 10,000. If a page_size <= 0 or > 10,000 is submitted, will instead return a maximum of 10,000 results.'}, 'pageToken': {'type': 'string', 'description': 'Optional. If this field is not empty then it must contain the `nextPageToken` value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.'}, 'activeOnly': {'type': 'boolean', 'description': 'Optional. If true, only metrics and monitored resource types that have recent data (within roughly 25 hours) will be included in the response. - If a metric descriptor enumerates monitored resource types, only the monitored resource types for which the metric type has recent data will be included in the returned metric descriptor, and if none of them have recent data, the metric descriptor will not be returned. - If a metric descriptor does not enumerate the compatible monitored resource types, it will be returned only if the metric type has recent data for some monitored resource type. The returned descriptor will not enumerate any monitored resource types.'}}, 'description': 'The `ListMetricDescriptors` request.'}
Esquema de salida
{'type': 'object', '$defs': {'LabelDescriptor': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'The key for this label. The key must meet the following criteria: * Does not exceed 100 characters. * Matches the following regular expression: `a-zA-Z*` * The first character must be an upper- or lower-case letter. * The remaining characters must be letters, digits, or underscores.'}, 'valueType': {'enum': ['STRING', 'BOOL', 'INT64'], 'type': 'string', 'description': 'The type of data that can be assigned to the label.', 'x-google-enum-descriptions': ['A variable-length string, not to exceed 1,024 characters. This is the default value type.', 'Boolean; true or false.', 'A 64-bit signed integer.']}, 'description': {'type': 'string', 'description': 'A human-readable description for the label.'}}, 'description': 'A description of a label.'}, 'MetricDescriptor': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'The resource name of the metric descriptor.'}, 'type': {'type': 'string', 'description': 'The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined metric types have the DNS name `custom.googleapis.com` or `external.googleapis.com`. Metric types should use a natural hierarchical grouping. For example: "custom.googleapis.com/invoice/paid/amount" "external.googleapis.com/prometheus/up" "appengine.googleapis.com/http/server/response_latencies"'}, 'unit': {'type': 'string', 'description': 'The units in which the metric value is reported. It is only applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the representation of the stored metric values. Different systems might scale the values to be more easily displayed (so a value of `0.02kBy` _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of the metric is always in thousands of bytes, no matter how it might be displayed. If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if you want a custom metric to record data in a more granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). The supported units are a subset of [The Unified Code for Units of Measure](https://unitsofmeasure.org/ucum.html) standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these connectors: * `/` division or ratio (as an infix operator). For examples, `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in a metric `unit`; rates should always be computed at query time from the underlying cumulative or delta value). * `.` multiplication or composition (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: Expression = Component { "." Component } { "/" Component } ; Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; Annotation = "{" NAME "}" ; Notes: * `Annotation` is just a comment if it follows a `UNIT`. If the annotation is used alone, then the unit is equivalent to `1`. For examples, `{request}/s == 1/s`, `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable ASCII characters not containing `{` or `}`. * `1` represents a unitary [dimensionless unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as in `1/s`. It is typically used when none of the basic units are appropriate. For example, "new users per day" can be represented as `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new users). Alternatively, "thousands of page views per day" would be represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would mean "5300 page views per day"). * `%` represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value `3` means "3 percent"). * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value `0.03` means "3 percent").'}, 'labels': {'type': 'array', 'items': {'$ref': '#/$defs/LabelDescriptor'}, 'description': 'The set of labels that can be used to describe a specific instance of this metric type. For example, the `appengine.googleapis.com/http/server/response_latencies` metric type has a label for the HTTP response code, `response_code`, so you can look at latencies for successful responses or just for responses that failed.'}, 'metadata': {'$ref': '#/$defs/MetricDescriptorMetadata', 'description': 'Optional. Metadata which can be used to guide usage of the metric.'}, 'valueType': {'enum': ['VALUE_TYPE_UNSPECIFIED', 'BOOL', 'INT64', 'DOUBLE', 'STRING', 'DISTRIBUTION', 'MONEY'], 'type': 'string', 'description': 'Whether the measurement is an integer, a floating-point number, etc. Some combinations of `metric_kind` and `value_type` might not be supported.', 'x-google-enum-descriptions': ['Do not use this default value.', 'The value is a boolean. This value type can be used only if the metric kind is `GAUGE`.', 'The value is a signed 64-bit integer.', 'The value is a double precision floating point number.', 'The value is a text string. This value type can be used only if the metric kind is `GAUGE`.', 'The value is a `Distribution`.', 'The value is money.']}, 'metricKind': {'enum': ['METRIC_KIND_UNSPECIFIED', 'GAUGE', 'DELTA', 'CUMULATIVE'], 'type': 'string', 'description': 'Whether the metric records instantaneous values, changes to a value, etc. Some combinations of `metric_kind` and `value_type` might not be supported.', 'x-google-enum-descriptions': ['Do not use this default value.', 'An instantaneous measurement of a value.', 'The change in a value during a time interval.', 'A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.']}, 'description': {'type': 'string', 'description': 'A detailed description of the metric, which can be used in documentation.'}, 'displayName': {'type': 'string', 'description': 'A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.'}, 'launchStage': {'enum': ['LAUNCH_STAGE_UNSPECIFIED', 'UNIMPLEMENTED', 'PRELAUNCH', 'EARLY_ACCESS', 'ALPHA', 'BETA', 'GA', 'DEPRECATED'], 'type': 'string', 'description': 'Optional. The launch stage of the metric definition.', 'x-google-enum-descriptions': ['Do not use this default value.', 'The feature is not yet implemented. Users can not use it.', 'Prelaunch features are hidden from users and are only visible internally.', 'Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.', "Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", 'Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.', 'GA features are open to all developers and are considered stable and fully qualified for production use.', 'Deprecated features are scheduled to be shut down and removed. For more information, see the "Deprecation Policy" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation.']}, 'monitoredResourceTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.'}}, 'description': "Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable. "}, 'MetricDescriptorMetadata': {'type': 'object', 'properties': {'ingestDelay': {'type': 'string', 'format': 'google-duration', 'description': 'The delay of data points caused by ingestion. Data points older than this age are guaranteed to be ingested and available to be read, excluding data loss due to errors.'}, 'launchStage': {'enum': ['LAUNCH_STAGE_UNSPECIFIED', 'UNIMPLEMENTED', 'PRELAUNCH', 'EARLY_ACCESS', 'ALPHA', 'BETA', 'GA', 'DEPRECATED'], 'type': 'string', 'deprecated': True, 'description': 'Deprecated. Must use the MetricDescriptor.launch_stage instead.', 'x-google-enum-descriptions': ['Do not use this default value.', 'The feature is not yet implemented. Users can not use it.', 'Prelaunch features are hidden from users and are only visible internally.', 'Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.', "Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", 'Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.', 'GA features are open to all developers and are considered stable and fully qualified for production use.', 'Deprecated features are scheduled to be shut down and removed. For more information, see the "Deprecation Policy" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation.']}, 'samplePeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The sampling period of metric data points. For metrics which are written periodically, consecutive data points are stored at this time interval, excluding data loss due to errors. Metrics with a higher granularity have a smaller sampling period.'}, 'timeSeriesResourceHierarchyLevel': {'type': 'array', 'items': {'enum': ['TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED', 'PROJECT', 'ORGANIZATION', 'FOLDER'], 'type': 'string', 'x-google-enum-descriptions': ['Do not use this default value.', 'Scopes a metric to a project.', 'Scopes a metric to an organization.', 'Scopes a metric to a folder.']}, 'description': 'The scope of the timeseries data of the metric.'}}, 'description': 'Additional annotations that can be used to guide the usage of a metric.'}}, 'properties': {'nextPageToken': {'type': 'string', 'description': 'If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as `page_token` in the next call to this method.'}, 'metricDescriptors': {'type': 'array', 'items': {'$ref': '#/$defs/MetricDescriptor'}, 'description': 'The metric descriptors that are available to the project and that match the value of `filter`, if present.'}}, 'description': 'The `ListMetricDescriptors` response.'}
Esquema de entrada
{'type': 'object', '$defs': {'Aggregation': {'type': 'object', 'properties': {'groupByFields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.'}, 'alignmentPeriod': {'type': 'string', 'format': 'google-duration', 'description': 'The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored. The maximum value of the `alignment_period` is 104 weeks (2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.'}, 'perSeriesAligner': {'enum': ['ALIGN_NONE', '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'], 'type': 'string', 'description': 'An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No alignment. Raw data is returned. Not valid if cross-series reduction is requested. The `value_type` of the result is the same as the `value_type` of the input.', 'Align and convert to DELTA. The output is `delta = y1 - y0`. This alignment is valid for CUMULATIVE and `DELTA` metrics. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align and convert to a rate. The result is computed as `rate = (y1 - y0)/(t1 - t0)`, or "delta over time". Think of this aligner as providing the slope of the line that passes through the value at the start and at the end of the `alignment_period`. This aligner is valid for `CUMULATIVE` and `DELTA` metrics with numeric values. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The output is a `GAUGE` metric with `value_type` `DOUBLE`. If, by "rate", you mean "percentage change", see the `ALIGN_PERCENT_CHANGE` aligner instead.', 'Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for `GAUGE` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for `GAUGE` metrics. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the minimum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the maximum value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the mean value in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the aligned result is `DOUBLE`.', 'Align the time series by returning the number of values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric or Boolean values. The `value_type` of the aligned result is `INT64`.', 'Align the time series by returning the sum of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric and distribution values. The `value_type` of the aligned result is the same as the `value_type` of the input.', 'Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. The `value_type` of the output is `DOUBLE`.', 'Align the time series by returning the number of `True` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the number of `False` values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The `value_type` of the output is `INT64`.', 'Align the time series by returning the ratio of the number of `True` values to the total number of values in each alignment period. This aligner is valid for `GAUGE` metrics with Boolean values. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align the time series by using [percentile aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for `GAUGE` and `DELTA` metrics with distribution values. The output is a `GAUGE` metric with `value_type` `DOUBLE`.', 'Align and convert to a percentage change. This aligner is valid for `GAUGE` and `DELTA` metrics with numeric values. This alignment returns `((current - previous)/previous) * 100`, where the value of `previous` is determined based on the `alignment_period`. If the values of `current` and `previous` are both 0, then the returned value is 0. If only `previous` is 0, the returned value is infinity. A 10-minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very short-lived spikes. The moving mean is only applicable for data whose values are `>= 0`. Any values `< 0` are treated as a missing datapoint, and are ignored. While `DELTA` metrics are accepted by this alignment, special care should be taken that the values for the metric will always be positive. The output is a `GAUGE` metric with `value_type` `DOUBLE`.']}, 'crossSeriesReducer': {'enum': ['REDUCE_NONE', 'REDUCE_MEAN', 'REDUCE_MIN', 'REDUCE_MAX', 'REDUCE_SUM', 'REDUCE_STDDEV', 'REDUCE_COUNT', 'REDUCE_COUNT_TRUE', 'REDUCE_COUNT_FALSE', 'REDUCE_FRACTION_TRUE', 'REDUCE_PERCENTILE_99', 'REDUCE_PERCENTILE_95', 'REDUCE_PERCENTILE_50', 'REDUCE_PERCENTILE_05'], 'type': 'string', 'description': 'The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned.', 'x-google-enum-descriptions': ['No cross-time series reduction. The output of the `Aligner` is returned.', 'Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The `value_type` of the output is DOUBLE.', 'Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the sum across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric and distribution values. The `value_type` of the output is the same as the `value_type` of the input.', 'Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics with numeric or distribution values. The `value_type` of the output is `DOUBLE`.', 'Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of numeric, Boolean, distribution, and string `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `True`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the number of `False`-valued data points across time series for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output is `INT64`.', 'Reduce by computing the ratio of the number of `True`-valued data points to the total number of data points for each alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`. The output value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.', 'Reduce by computing the [99th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [95th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [50th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.', 'Reduce by computing the [5th percentile](https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for `GAUGE` and `DELTA` metrics of numeric and distribution type. The value of the output is `DOUBLE`.']}}, 'description': 'Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is _aligned_ to the same time interval boundaries, then the set of time series is optionally _reduced_ in number. Alignment consists of applying the `per_series_aligner` operation to each time series after its data has been divided into regular `alignment_period` time intervals. This process takes _all_ of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period. Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a `cross_series_reducer` to all the time series, optionally sorting the time series into subsets with `group_by_fields`, and applying the reducer to each subset. The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see [Filtering and aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).'}, 'TimeInterval': {'type': 'object', 'properties': {'endTime': {'type': 'string', 'format': 'date-time', 'description': 'Required. The end of the time interval.'}, 'startTime': {'type': 'string', 'format': 'date-time', 'description': 'Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.'}}, 'description': 'Describes a time interval: * Reads: A half-open time interval. It includes the end time but excludes the start time: `(startTime, endTime]`. The start time must be specified, must be earlier than the end time, and should be no older than the data retention period for the metric. * Writes: A closed time interval. It extends from the start time to the end time, and includes both: `[startTime, endTime]`. Valid time intervals depend on the [`MetricKind`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) of the metric value. The end time must not be earlier than the start time, and the end time must not be more than 25 hours in the past or more than five minutes in the future. * For `GAUGE` metrics, the `startTime` value is technically optional; if no value is specified, the start time defaults to the value of the end time, and the interval represents a single point in time. If both start and end times are specified, they must be identical. Such an interval is valid only for `GAUGE` metrics, which are point-in-time measurements. The end time of a new interval must be at least a millisecond after the end time of the previous interval. * For `DELTA` metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For `DELTA` metrics, the start time of the next interval must be at least a millisecond after the end time of the previous interval. * For `CUMULATIVE` metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points. The new start time must be at least a millisecond after the end time of the previous interval. * The start time of a new interval must be at least a millisecond after the end time of the previous interval because intervals are closed. If the start time of a new interval is the same as the end time of the previous interval, then data written at the new start time could overwrite data written at the previous end time.'}}, 'required': ['name', 'filter', 'interval', 'view'], 'properties': {'name': {'type': 'string', 'description': 'Required. The [project](https://cloud.google.com/monitoring/api/v3#project_name), organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]'}, 'view': {'enum': ['FULL', 'HEADERS'], 'type': 'string', 'description': 'Required. Specifies which information is returned about the time series.', 'x-google-enum-descriptions': ['Returns the identity of the metric(s), the time series, and the time series data.', 'Returns the identity of the metric and the time series resource, but not the time series data.']}, 'filter': {'type': 'string', 'description': 'Required. A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND metric.labels.instance_name = "my-instance-name"'}, 'orderBy': {'type': 'string', 'description': 'Unsupported: must be left blank. The points in each time series are currently returned in reverse time order (most recent to oldest).'}, 'interval': {'$ref': '#/$defs/TimeInterval', 'description': 'Required. The time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response.'}, 'pageSize': {'type': 'integer', 'format': 'int32', 'description': 'A positive number that is the maximum number of results to return. If `page_size` is empty or more than 100,000 results, the effective `page_size` is 100,000 results. If `view` is set to `FULL`, this is the maximum number of `Points` returned. If `view` is set to `HEADERS`, this is the maximum number of `TimeSeries` returned.'}, 'pageToken': {'type': 'string', 'description': 'If this field is not empty then it must contain the `nextPageToken` value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.'}, 'aggregation': {'$ref': '#/$defs/Aggregation', 'description': 'Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series across specified labels. By default (if no `aggregation` is explicitly specified), the raw time series data is returned.'}, 'secondaryAggregation': {'$ref': '#/$defs/Aggregation', 'description': 'Apply a second aggregation after `aggregation` is applied. May only be specified if `aggregation` is specified.'}}, 'description': 'The `ListTimeSeries` request.'}
Esquema de salida
{'type': 'object', '$defs': {'Point': {'type': 'object', 'properties': {'value': {'$ref': '#/$defs/TypedValue', 'description': 'The value of the data point.'}, 'interval': {'$ref': '#/$defs/TimeInterval', 'description': 'The time interval to which the data point applies. For `GAUGE` metrics, the start time is optional, but if it is supplied, it must equal the end time. For `DELTA` metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For `CUMULATIVE` metrics, the start and end time should specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.'}}, 'description': 'A single data point in a time series.'}, 'Range': {'type': 'object', 'properties': {'max': {'type': 'number', 'format': 'double', 'description': 'The maximum of the population values.'}, 'min': {'type': 'number', 'format': 'double', 'description': 'The minimum of the population values.'}}, 'description': 'The range of the population values.'}, 'Linear': {'type': 'object', 'properties': {'width': {'type': 'number', 'format': 'double', 'description': 'Must be greater than 0.'}, 'offset': {'type': 'number', 'format': 'double', 'description': 'Lower bound of the first bucket.'}, 'numFiniteBuckets': {'type': 'integer', 'format': 'int32', 'description': 'Must be greater than 0.'}}, 'description': 'Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket. There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 <= i < N-1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).'}, 'Metric': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'An existing metric type, see google.api.MetricDescriptor. For example, `custom.googleapis.com/invoice/paid/amount`.'}, 'labels': {'type': 'object', 'description': 'The set of label values that uniquely identify this metric. All labels listed in the `MetricDescriptor` must be assigned values.', 'additionalProperties': {'type': 'string'}}}, 'description': 'A specific metric, identified by specifying values for all of the labels of a `MetricDescriptor`.'}, 'Status': {'type': 'object', 'properties': {'code': {'type': 'integer', 'format': 'int32', 'description': 'The status code, which should be an enum value of google.rpc.Code.'}, 'details': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {'description': 'Properties of the object. Contains field @type with type URL.'}}, 'description': 'A list of messages that carry the error details. There is a common set of message types for APIs to use.'}, 'message': {'type': 'string', 'description': 'A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.'}}, 'description': 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'}, 'Exemplar': {'type': 'object', 'properties': {'value': {'type': 'number', 'format': 'double', 'description': 'Value of the exemplar point. This value determines to which bucket the exemplar belongs.'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'description': 'The observation (sampling) time of the above value.'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {'description': 'Properties of the object. Contains field @type with type URL.'}}, 'description': 'Contextual information about the example value. Examples are: Trace: type.googleapis.com/google.monitoring.v3.SpanContext Literal string: type.googleapis.com/google.protobuf.StringValue Labels dropped during aggregation: type.googleapis.com/google.monitoring.v3.DroppedLabels There may be only a single attachment of any given message type in a single exemplar, and this is enforced by the system.'}}, 'description': 'Exemplars are example points that may be used to annotate aggregated distribution values. They are metadata that gives information about a particular value added to a Distribution bucket, such as a trace ID that was active when a value was added. They may contain further information, such as a example values and timestamps, origin, etc.'}, 'Explicit': {'type': 'object', 'properties': {'bounds': {'type': 'array', 'items': {'type': 'number', 'format': 'double'}, 'description': 'The values must be monotonically increasing.'}}, 'description': 'Specifies a set of buckets with arbitrary widths. There are `size(bounds) + 1` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 <= i < N-1): bounds[i] Lower bound (1 <= i < N); bounds[i - 1] The `bounds` field must contain at least one element. If `bounds` has only one element, then there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.'}, 'TimeSeries': {'type': 'object', 'properties': {'unit': {'type': 'string', 'description': 'The units in which the metric value is reported. It is only applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` defines the representation of the stored metric values. This field can only be changed through CreateTimeSeries when it is empty.'}, 'metric': {'$ref': '#/$defs/Metric', 'description': 'The associated metric. A fully-specified metric used to identify the time series.'}, 'points': {'type': 'array', 'items': {'$ref': '#/$defs/Point'}, 'description': "The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point's type must be the same as the value type of the associated metric. If the associated metric's descriptor must be auto-created, then the value type of the descriptor is determined by the point's type, which must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`."}, 'metadata': {'$ref': '#/$defs/MonitoredResourceMetadata', 'description': 'Output only. The associated monitored resource metadata. When reading a time series, this field will include metadata labels that are explicitly named in the reduction. When creating a time series, this field is ignored.'}, 'resource': {'$ref': '#/$defs/MonitoredResource', 'description': 'The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. For more information, see [Monitored resources for custom metrics](https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).'}, 'valueType': {'enum': ['VALUE_TYPE_UNSPECIFIED', 'BOOL', 'INT64', 'DOUBLE', 'STRING', 'DISTRIBUTION', 'MONEY'], 'type': 'string', 'description': 'The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the `points` field.', 'x-google-enum-descriptions': ['Do not use this default value.', 'The value is a boolean. This value type can be used only if the metric kind is `GAUGE`.', 'The value is a signed 64-bit integer.', 'The value is a double precision floating point number.', 'The value is a text string. This value type can be used only if the metric kind is `GAUGE`.', 'The value is a `Distribution`.', 'The value is money.']}, 'metricKind': {'enum': ['METRIC_KIND_UNSPECIFIED', 'GAUGE', 'DELTA', 'CUMULATIVE'], 'type': 'string', 'description': "The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric's descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either `GAUGE` (the default) or `CUMULATIVE`.", 'x-google-enum-descriptions': ['Do not use this default value.', 'An instantaneous measurement of a value.', 'The change in a value during a time interval.', 'A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.']}, 'description': {'type': 'string', 'description': 'Input only. A detailed description of the time series that will be associated with the google.api.MetricDescriptor for the metric. Once set, this field cannot be changed through CreateTimeSeries.'}}, 'description': 'A collection of data points that describes the time-varying values of a metric. A time series is identified by a combination of a fully-specified monitored resource and a fully-specified metric. This type is used for both listing and creating time series.'}, 'TypedValue': {'type': 'object', 'properties': {'boolValue': {'type': 'boolean', 'description': 'A Boolean value: `true` or `false`.'}, 'int64Value': {'type': 'string', 'format': 'int64', 'description': 'A 64-bit integer. Its range is approximately ±9.2x1018.'}, 'doubleValue': {'type': 'number', 'format': 'double', 'description': 'A 64-bit double-precision floating-point number. Its magnitude is approximately ±10±300 and it has 16 significant digits of precision.'}, 'stringValue': {'type': 'string', 'description': 'A variable-length string value.'}, 'distributionValue': {'$ref': '#/$defs/Distribution', 'description': 'A distribution value.'}}, 'description': 'A single strongly-typed value.'}, 'Exponential': {'type': 'object', 'properties': {'scale': {'type': 'number', 'format': 'double', 'description': 'Must be greater than 0.'}, 'growthFactor': {'type': 'number', 'format': 'double', 'description': 'Must be greater than 1.'}, 'numFiniteBuckets': {'type': 'integer', 'format': 'int32', 'description': 'Must be greater than 0.'}}, 'description': 'Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket. There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has the following boundaries: Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).'}, 'Distribution': {'type': 'object', 'properties': {'mean': {'type': 'number', 'format': 'double', 'description': 'The arithmetic mean of the values in the population. If `count` is zero then this field must be zero.'}, 'count': {'type': 'string', 'format': 'int64', 'description': 'The number of values in the population. Must be non-negative. This value must equal the sum of the values in `bucket_counts` if a histogram is provided.'}, 'range': {'$ref': '#/$defs/Range', 'description': 'If specified, contains the range of the population values. The field must not be present if the count is zero. This field is presently ignored by the Cloud Monitoring API v3.'}, 'exemplars': {'type': 'array', 'items': {'$ref': '#/$defs/Exemplar'}, 'description': 'Must be in increasing order of `value` field.'}, 'bucketCounts': {'type': 'array', 'items': {'type': 'string', 'format': 'int64'}, 'description': 'Required in the Cloud Monitoring API v3. The values for each bucket specified in `bucket_options`. The sum of the values in `bucketCounts` must equal the value in the count field of the `Distribution` object. The order of the bucket counts follows the numbering schemes described for the three bucket types. The underflow bucket has number 0; the finite buckets, if any, have numbers 1 through N-2; and the overflow bucket has number N-1. The size of `bucket_counts` must not be greater than N. If the size is less than N, then the remaining buckets are assigned values of zero.'}, 'bucketOptions': {'$ref': '#/$defs/BucketOptions', 'description': 'Required in the Cloud Monitoring API v3. Defines the histogram bucket boundaries.'}, 'sumOfSquaredDeviation': {'type': 'number', 'format': 'double', 'description': 'The sum of squared deviations from the mean of the values in the population. For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3rd edition describes Welford\'s method for accumulating this sum in one pass. If `count` is zero then this field must be zero.'}}, 'description': '`Distribution` contains summary statistics for a population of values. It optionally contains a histogram representing the distribution of those values across a set of buckets. The summary statistics are the count, mean, sum of the squared deviation from the mean, the minimum, and the maximum of the set of population of values. The histogram is based on a sequence of buckets and gives a count of values that fall into each bucket. The boundaries of the buckets are given either explicitly or by formulas for buckets of fixed or exponentially increasing widths. Although it is not forbidden, it is generally a bad idea to include non-finite values (infinities or NaNs) in the population of values, as this will render the `mean` and `sum_of_squared_deviation` fields meaningless.'}, 'TimeInterval': {'type': 'object', 'properties': {'endTime': {'type': 'string', 'format': 'date-time', 'description': 'Required. The end of the time interval.'}, 'startTime': {'type': 'string', 'format': 'date-time', 'description': 'Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time.'}}, 'description': 'Describes a time interval: * Reads: A half-open time interval. It includes the end time but excludes the start time: `(startTime, endTime]`. The start time must be specified, must be earlier than the end time, and should be no older than the data retention period for the metric. * Writes: A closed time interval. It extends from the start time to the end time, and includes both: `[startTime, endTime]`. Valid time intervals depend on the [`MetricKind`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) of the metric value. The end time must not be earlier than the start time, and the end time must not be more than 25 hours in the past or more than five minutes in the future. * For `GAUGE` metrics, the `startTime` value is technically optional; if no value is specified, the start time defaults to the value of the end time, and the interval represents a single point in time. If both start and end times are specified, they must be identical. Such an interval is valid only for `GAUGE` metrics, which are point-in-time measurements. The end time of a new interval must be at least a millisecond after the end time of the previous interval. * For `DELTA` metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For `DELTA` metrics, the start time of the next interval must be at least a millisecond after the end time of the previous interval. * For `CUMULATIVE` metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points. The new start time must be at least a millisecond after the end time of the previous interval. * The start time of a new interval must be at least a millisecond after the end time of the previous interval because intervals are closed. If the start time of a new interval is the same as the end time of the previous interval, then data written at the new start time could overwrite data written at the previous end time.'}, 'BucketOptions': {'type': 'object', 'properties': {'linearBuckets': {'$ref': '#/$defs/Linear', 'description': 'The linear bucket.'}, 'explicitBuckets': {'$ref': '#/$defs/Explicit', 'description': 'The explicit buckets.'}, 'exponentialBuckets': {'$ref': '#/$defs/Exponential', 'description': 'The exponential buckets.'}}, 'description': '`BucketOptions` describes the bucket boundaries used to create a histogram for the distribution. The buckets can be in a linear sequence, an exponential sequence, or each bucket can be specified explicitly. `BucketOptions` does not include the number of values in each bucket. A bucket has an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket must be strictly greater than the lower bound. The sequence of N buckets for a distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.'}, 'MonitoredResource': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Required. The monitored resource type. This field must match the `type` field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is `gce_instance`. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).'}, 'labels': {'type': 'object', 'description': 'Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels `"project_id"`, `"instance_id"`, and `"zone"`.', 'additionalProperties': {'type': 'string'}}}, 'description': 'An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The `type` field identifies a MonitoredResourceDescriptor object that describes the resource\'s schema. Information in the `labels` field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for `"gce_instance"` has labels `"project_id"`, `"instance_id"` and `"zone"`: { "type": "gce_instance", "labels": { "project_id": "my-project", "instance_id": "12345678901234", "zone": "us-central1-a" }}'}, 'MonitoredResourceMetadata': {'type': 'object', 'properties': {'userLabels': {'type': 'object', 'description': 'Output only. A map of user-defined metadata labels.', 'additionalProperties': {'type': 'string'}}, 'systemLabels': {'type': 'object', 'description': 'Output only. Values for predefined system metadata labels. System labels are a kind of metadata extracted by Google, including "machine_image", "vpc", "subnet_id", "security_group", "name", etc. System label values can be only strings, Boolean values, or a list of strings. For example: { "name": "my-test-instance", "security_group": ["a", "b", "c"], "spot_instance": false }', 'additionalProperties': {'description': 'Properties of the object.'}}}, 'description': 'Auxiliary metadata for a MonitoredResource object. MonitoredResource objects contain the minimum set of information to uniquely identify a monitored resource instance. There is some other useful auxiliary metadata. Monitoring and Logging use an ingestion pipeline to extract metadata for cloud resources of all types, and store the metadata in this message.'}}, 'properties': {'unit': {'type': 'string', 'description': 'The unit in which all `time_series` point values are reported. `unit` follows the UCUM format for units as seen in https://unitsofmeasure.org/ucum.html. If different `time_series` have different units (for example, because they come from different metric types, or a unit is absent), then `unit` will be "{not_a_unit}".'}, 'timeSeries': {'type': 'array', 'items': {'$ref': '#/$defs/TimeSeries'}, 'description': 'One or more time series that match the filter included in the request.'}, 'unreachable': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Cloud regions that were unreachable which may have caused incomplete data to be returned.'}, 'nextPageToken': {'type': 'string', 'description': 'If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as `page_token` in the next call to this method.'}, 'executionErrors': {'type': 'array', 'items': {'$ref': '#/$defs/Status'}, 'description': 'Query execution errors that may have caused the time series data returned to be incomplete.'}}, 'description': 'The `ListTimeSeries` response.'}
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'end': {'type': 'string', 'description': 'The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.'}, 'name': {'type': 'string', 'description': "Required. The project on which to execute the request. Data associcated with the project's workspace stored under the The format is: projects/[PROJECT_ID_OR_NUMBER]. Open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine."}, 'step': {'type': 'string', 'description': 'The resolution of query result. Either a Prometheus duration string (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) or floating point seconds. This non-standard encoding must be used for compatibility with the open source API. Clients may still implement timeouts at the connection level while ignoring this field.'}, 'query': {'type': 'string', 'description': 'A PromQL query string. Query language documentation: https://prometheus.io/docs/prometheus/latest/querying/basics/.'}, 'start': {'type': 'string', 'description': 'The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.'}, 'timeout': {'type': 'string', 'description': 'An upper bound timeout for the query. Either a Prometheus duration string (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) or floating point seconds. This non-standard encoding must be used for compatibility with the open source API. Clients may still implement timeouts at the connection level while ignoring this field.'}, 'location': {'type': 'string', 'description': 'Location of the resource information. Has to be "global" now.'}}, 'description': 'QueryRangeRequest holds all parameters of the Prometheus upstream range query API plus GCM specific parameters.'}
Esquema de salida
{'type': 'object', 'required': ['status'], 'properties': {'data': {'type': 'object', 'description': "The Prometheus API response payload. Typically present when status is 'success'.", 'additionalProperties': True}, 'error': {'type': 'string', 'description': "The error message. Present when status is 'error'."}, 'status': {'enum': ['success', 'error'], 'type': 'string', 'description': 'Indicates if the API call was successful or resulted in an error.'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'A list of warnings that occurred while processing the request.'}, 'errorType': {'type': 'string', 'description': "The type of error (e.g., 'bad_data', 'timeout'). Present when status is 'error'."}}}
Cambios recientes en herramientas
Servidores MCP similares
Algenta MCP Server
Provides governed data onboarding, connector browsing, deterministic simulations, agent-run lifecycles, capability routing, deplo…
Scalix Cloud
Provides managed databases, SQL tools, container builds, persistent Linux machines, domains, scheduled functions, storage, and pr…
RationalBloks
Creates, deploys, manages, and searches schema-based REST API projects and Neo4j knowledge graphs across staging and production e…
RationalBloks
Creates, deploys, manages, and queries REST API and Neo4j graph projects from JSON schemas, including graph data modeling, versio…
Cloudflare Radar
Provides Cloudflare Radar internet observatory data on DDoS attacks, BGP leaks, domain popularity, internet quality, and traffic …
Peeringdb
Provides lookup and identity data for internet peering facilities, networks, and exchange infrastructure from PeeringDB.
Supabase
Manages Supabase projects, PostgreSQL databases, migrations, branches, storage-related infrastructure, Edge Functions, logs, keys…
corpusAI Cloud Pricing
Provides historical and current cloud instance, GPU rental, spot, on-demand, reserved-price, capacity, and pricing-index data.