# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cnrm.cloud.google.com/version: 1.128.0
  creationTimestamp: null
  labels:
    cnrm.cloud.google.com/managed-by-kcc: "true"
    cnrm.cloud.google.com/stability-level: stable
    cnrm.cloud.google.com/system: "true"
  name: monitoringdashboards.monitoring.cnrm.cloud.google.com
spec:
  group: monitoring.cnrm.cloud.google.com
  names:
    categories:
    - gcp
    kind: MonitoringDashboard
    listKind: MonitoringDashboardList
    plural: monitoringdashboards
    shortNames:
    - gcpmonitoringdashboard
    - gcpmonitoringdashboards
    singular: monitoringdashboard
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: When 'True', the most recent reconcile of the resource succeeded
      jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - description: The reason for the value in 'Ready'
      jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Status
      type: string
    - description: The last transition time for the value in 'Status'
      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
      name: Status Age
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: MonitoringDashboard is the Schema for the monitoring API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              columnLayout:
                description: The content is divided into equally spaced columns and
                  the widgets are arranged vertically.
                properties:
                  columns:
                    description: The columns of content to display.
                    items:
                      properties:
                        weight:
                          description: The relative weight of this column. The column
                            weight is used to adjust the width of columns on the screen
                            (relative to peers).
                          format: int64
                          type: integer
                        widgets:
                          description: The display widgets arranged vertically in
                            this column.
                          items:
                            properties:
                              alertChart:
                                description: A chart of alert policy data.
                                properties:
                                  alertPolicyRef:
                                    description: Required. A reference to the MonitoringAlertPolicy.
                                    oneOf:
                                    - not:
                                        required:
                                        - external
                                      required:
                                      - name
                                    - not:
                                        anyOf:
                                        - required:
                                          - name
                                        - required:
                                          - namespace
                                      required:
                                      - external
                                    properties:
                                      external:
                                        description: The MonitoringAlertPolicy link
                                          in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                          when not managed by Config Connector.
                                        type: string
                                      name:
                                        description: The `name` field of a `MonitoringAlertPolicy`
                                          resource.
                                        type: string
                                      namespace:
                                        description: The `namespace` field of a `MonitoringAlertPolicy`
                                          resource.
                                        type: string
                                    type: object
                                required:
                                - alertPolicyRef
                                type: object
                              blank:
                                description: A blank space.
                                type: object
                              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.
                                properties:
                                  collapsed:
                                    description: The collapsed state of the widget
                                      on first page load.
                                    type: boolean
                                type: object
                              errorReportingPanel:
                                description: A widget that displays a list of error
                                  groups.
                                properties:
                                  projectRefs:
                                    description: The projects from which to gather
                                      errors.
                                    items:
                                      description: The Project that this resource
                                        belongs to.
                                      oneOf:
                                      - not:
                                          required:
                                          - external
                                        required:
                                        - name
                                        - kind
                                      - not:
                                          anyOf:
                                          - required:
                                            - name
                                          - required:
                                            - namespace
                                          - required:
                                            - kind
                                        required:
                                        - external
                                      properties:
                                        external:
                                          description: The `projectID` field of a
                                            project, when not managed by Config Connector.
                                          type: string
                                        kind:
                                          description: The kind of the Project resource;
                                            optional but must be `Project` if provided.
                                          type: string
                                        name:
                                          description: The `name` field of a `Project`
                                            resource.
                                          type: string
                                        namespace:
                                          description: The `namespace` field of a
                                            `Project` resource.
                                          type: string
                                      type: object
                                    type: array
                                  services:
                                    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.
                                    items:
                                      type: string
                                    type: array
                                  versions:
                                    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.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              id:
                                description: Optional. The widget id. Ids may be made
                                  up of alphanumerics, dashes and underscores. Widget
                                  ids are optional.
                                type: string
                              incidentList:
                                description: A widget that shows list of incidents.
                                properties:
                                  monitoredResources:
                                    description: Optional. The monitored resource
                                      for which incidents are listed.
                                    items:
                                      properties:
                                        labels:
                                          additionalProperties:
                                            type: string
                                          description: Required. Values for all of
                                            the labels listed in the associated monitored
                                            resource descriptor.
                                          type: object
                                        type:
                                          description: Required. The monitored resource
                                            type. This field must match the `type`
                                            field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
                                            object.
                                          type: string
                                      type: object
                                    type: array
                                  policyRefs:
                                    description: Optional. A list of alert policies
                                      to filter the incident list by.
                                    items:
                                      oneOf:
                                      - not:
                                          required:
                                          - external
                                        required:
                                        - name
                                      - not:
                                          anyOf:
                                          - required:
                                            - name
                                          - required:
                                            - namespace
                                        required:
                                        - external
                                      properties:
                                        external:
                                          description: The MonitoringAlertPolicy link
                                            in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                            when not managed by Config Connector.
                                          type: string
                                        name:
                                          description: The `name` field of a `MonitoringAlertPolicy`
                                            resource.
                                          type: string
                                        namespace:
                                          description: The `namespace` field of a
                                            `MonitoringAlertPolicy` resource.
                                          type: string
                                      type: object
                                    type: array
                                type: object
                              logsPanel:
                                description: A widget that shows a stream of logs.
                                properties:
                                  filter:
                                    description: A filter that chooses which log entries
                                      to return.  See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries).
                                    type: string
                                  resourceNames:
                                    description: The names of logging resources to
                                      collect logs for.
                                    items:
                                      oneOf:
                                      - not:
                                          required:
                                          - external
                                        required:
                                        - name
                                        - kind
                                      - not:
                                          anyOf:
                                          - required:
                                            - name
                                          - required:
                                            - namespace
                                          - required:
                                            - kind
                                        required:
                                        - external
                                      properties:
                                        external:
                                          description: The external name of the referenced
                                            resource
                                          type: string
                                        kind:
                                          description: Kind of the referent.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        namespace:
                                          description: 'Namespace of the referent.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                                          type: string
                                      type: object
                                    type: array
                                type: object
                              pieChart:
                                description: A widget that displays timeseries data
                                  as a pie chart.
                                properties:
                                  chartType:
                                    description: Required. Indicates the visualization
                                      type for the PieChart.
                                    type: string
                                  dataSets:
                                    description: Required. The queries for the chart's
                                      data.
                                    items:
                                      properties:
                                        minAlignmentPeriod:
                                          description: Optional. The lower bound on
                                            data point frequency for this data set.
                                          type: string
                                        sliceNameTemplate:
                                          description: Optional. A template for the
                                            name of the slice.
                                          type: string
                                        timeSeriesQuery:
                                          description: Required. The query for the
                                            PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`.
                                          properties:
                                            outputFullDuration:
                                              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.
                                              type: boolean
                                            prometheusQuery:
                                              description: A query used to fetch time
                                                series with PromQL.
                                              type: string
                                            timeSeriesFilter:
                                              description: Filter parameters to fetch
                                                time series.
                                              properties:
                                                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.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                                filter:
                                                  description: Required. The [monitoring
                                                    filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                    that identifies the metric types,
                                                    resources, and projects to query.
                                                  type: string
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after `aggregation` is applied.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              required:
                                              - filter
                                              type: object
                                            timeSeriesFilterRatio:
                                              description: Parameters to fetch a ratio
                                                between two time series filters.
                                              properties:
                                                denominator:
                                                  description: The denominator of
                                                    the ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                numerator:
                                                  description: The numerator of the
                                                    ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after the ratio is computed.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              type: object
                                            timeSeriesQueryLanguage:
                                              description: A query used to fetch time
                                                series with MQL.
                                              type: string
                                            unitOverride:
                                              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`.
                                              type: string
                                          type: object
                                      required:
                                      - timeSeriesQuery
                                      type: object
                                    type: array
                                  showLabels:
                                    description: Optional. Indicates whether or not
                                      the pie chart should show slices' labels
                                    type: boolean
                                required:
                                - chartType
                                - dataSets
                                type: object
                              scorecard:
                                description: A scorecard summarizing time series data.
                                properties:
                                  blankView:
                                    description: Will cause the `Scorecard` to show
                                      only the value, with no indicator to its value
                                      relative to its thresholds.
                                    type: object
                                  gaugeView:
                                    description: Will cause the scorecard to show
                                      a gauge chart.
                                    properties:
                                      lowerBound:
                                        description: The lower bound for this gauge
                                          chart. The value of the chart should always
                                          be greater than or equal to this.
                                        format: double
                                        type: number
                                      upperBound:
                                        description: The upper bound for this gauge
                                          chart. The value of the chart should always
                                          be less than or equal to this.
                                        format: double
                                        type: number
                                    type: object
                                  sparkChartView:
                                    description: Will cause the scorecard to show
                                      a spark chart.
                                    properties:
                                      minAlignmentPeriod:
                                        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.
                                        type: string
                                      sparkChartType:
                                        description: Required. The type of sparkchart
                                          to show in this chartView.
                                        type: string
                                    required:
                                    - sparkChartType
                                    type: object
                                  thresholds:
                                    description: The thresholds used to determine
                                      the state of the scorecard given the time series'
                                      current value.
                                    items:
                                      properties:
                                        color:
                                          description: The state color for this threshold.
                                            Color is not allowed in a XyChart.
                                          type: string
                                        direction:
                                          description: The direction for the current
                                            threshold. Direction is not allowed in
                                            a XyChart.
                                          type: string
                                        label:
                                          description: A label for the threshold.
                                          type: string
                                        targetAxis:
                                          description: The target axis to use for
                                            plotting the threshold. Target axis is
                                            not allowed in a Scorecard.
                                          type: string
                                        value:
                                          description: The value of the threshold.
                                            The value should be defined in the native
                                            scale of the metric.
                                          format: double
                                          type: number
                                      type: object
                                    type: array
                                  timeSeriesQuery:
                                    description: Required. Fields for querying time
                                      series data from the Stackdriver metrics API.
                                    properties:
                                      outputFullDuration:
                                        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.
                                        type: boolean
                                      prometheusQuery:
                                        description: A query used to fetch time series
                                          with PromQL.
                                        type: string
                                      timeSeriesFilter:
                                        description: Filter parameters to fetch time
                                          series.
                                        properties:
                                          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.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                          filter:
                                            description: Required. The [monitoring
                                              filter](https://cloud.google.com/monitoring/api/v3/filters)
                                              that identifies the metric types, resources,
                                              and projects to query.
                                            type: string
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after `aggregation` is applied.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        required:
                                        - filter
                                        type: object
                                      timeSeriesFilterRatio:
                                        description: Parameters to fetch a ratio between
                                          two time series filters.
                                        properties:
                                          denominator:
                                            description: The denominator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          numerator:
                                            description: The numerator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after the ratio is computed.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        type: object
                                      timeSeriesQueryLanguage:
                                        description: A query used to fetch time series
                                          with MQL.
                                        type: string
                                      unitOverride:
                                        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`.
                                        type: string
                                    type: object
                                required:
                                - timeSeriesQuery
                                type: object
                              sectionHeader:
                                description: A widget that defines a section header
                                  for easier navigation of the dashboard.
                                properties:
                                  dividerBelow:
                                    description: Whether to insert a divider below
                                      the section in the table of contents
                                    type: boolean
                                  subtitle:
                                    description: The subtitle of the section
                                    type: string
                                type: object
                              singleViewGroup:
                                description: A widget that groups the other widgets
                                  by using a dropdown menu.
                                type: object
                              text:
                                description: A raw string or markdown displaying textual
                                  content.
                                properties:
                                  content:
                                    description: The text content to be displayed.
                                    type: string
                                  format:
                                    description: How the text content is formatted.
                                    type: string
                                  style:
                                    description: How the text is styled
                                    properties:
                                      backgroundColor:
                                        description: The background color as a hex
                                          string. "#RRGGBB" or "#RGB"
                                        type: string
                                      fontSize:
                                        description: Font sizes for both the title
                                          and content. The title will still be larger
                                          relative to the content.
                                        type: string
                                      horizontalAlignment:
                                        description: The horizontal alignment of both
                                          the title and content
                                        type: string
                                      padding:
                                        description: The amount of padding around
                                          the widget
                                        type: string
                                      pointerLocation:
                                        description: The pointer location for this
                                          widget (also sometimes called a "tail")
                                        type: string
                                      textColor:
                                        description: The text color as a hex string.
                                          "#RRGGBB" or "#RGB"
                                        type: string
                                      verticalAlignment:
                                        description: The vertical alignment of both
                                          the title and content
                                        type: string
                                    type: object
                                type: object
                              timeSeriesTable:
                                description: A widget that displays time series data
                                  in a tabular format.
                                properties:
                                  columnSettings:
                                    description: Optional. The list of the persistent
                                      column settings for the table.
                                    items:
                                      properties:
                                        column:
                                          description: Required. The id of the column.
                                          type: string
                                        visible:
                                          description: Required. Whether the column
                                            should be visible on page load.
                                          type: boolean
                                      required:
                                      - column
                                      - visible
                                      type: object
                                    type: array
                                  dataSets:
                                    description: Required. The data displayed in this
                                      table.
                                    items:
                                      properties:
                                        minAlignmentPeriod:
                                          description: Optional. The lower bound on
                                            data point frequency for this data set.
                                          type: string
                                        tableDisplayOptions:
                                          description: Optional. Table display options
                                            for configuring how the table is rendered.
                                          properties:
                                            shownColumns:
                                              description: Optional. This field is
                                                unused and has been replaced by TimeSeriesTable.column_settings
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        tableTemplate:
                                          description: Optional. A template string
                                            for naming `TimeSeries` in the resulting
                                            data set.
                                          type: string
                                        timeSeriesQuery:
                                          description: Required. Fields for querying
                                            time series data from the Stackdriver
                                            metrics API.
                                          properties:
                                            outputFullDuration:
                                              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.
                                              type: boolean
                                            prometheusQuery:
                                              description: A query used to fetch time
                                                series with PromQL.
                                              type: string
                                            timeSeriesFilter:
                                              description: Filter parameters to fetch
                                                time series.
                                              properties:
                                                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.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                                filter:
                                                  description: Required. The [monitoring
                                                    filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                    that identifies the metric types,
                                                    resources, and projects to query.
                                                  type: string
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after `aggregation` is applied.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              required:
                                              - filter
                                              type: object
                                            timeSeriesFilterRatio:
                                              description: Parameters to fetch a ratio
                                                between two time series filters.
                                              properties:
                                                denominator:
                                                  description: The denominator of
                                                    the ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                numerator:
                                                  description: The numerator of the
                                                    ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after the ratio is computed.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              type: object
                                            timeSeriesQueryLanguage:
                                              description: A query used to fetch time
                                                series with MQL.
                                              type: string
                                            unitOverride:
                                              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`.
                                              type: string
                                          type: object
                                      type: object
                                    type: array
                                  metricVisualization:
                                    description: Optional. Store rendering strategy
                                    type: string
                                required:
                                - dataSets
                                type: object
                              title:
                                description: Optional. The title of the widget.
                                type: string
                              xyChart:
                                description: A chart of time series data.
                                properties:
                                  chartOptions:
                                    description: Display options for the chart.
                                    properties:
                                      mode:
                                        description: The chart mode.
                                        type: string
                                    type: object
                                  dataSets:
                                    description: Required. The data displayed in this
                                      chart.
                                    items:
                                      properties:
                                        legendTemplate:
                                          description: A template string for naming
                                            `TimeSeries` in the resulting data set.
                                          type: string
                                        minAlignmentPeriod:
                                          description: Optional. The lower bound on
                                            data point frequency for this data set.
                                          type: string
                                        plotType:
                                          description: How this data should be plotted
                                            on the chart.
                                          type: string
                                        targetAxis:
                                          description: Optional. The target axis to
                                            use for plotting the metric.
                                          type: string
                                        timeSeriesQuery:
                                          description: Fields for querying time series
                                            data from the Stackdriver metrics API.
                                          properties:
                                            outputFullDuration:
                                              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.
                                              type: boolean
                                            prometheusQuery:
                                              description: A query used to fetch time
                                                series with PromQL.
                                              type: string
                                            timeSeriesFilter:
                                              description: Filter parameters to fetch
                                                time series.
                                              properties:
                                                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.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                                filter:
                                                  description: Required. The [monitoring
                                                    filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                    that identifies the metric types,
                                                    resources, and projects to query.
                                                  type: string
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after `aggregation` is applied.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              required:
                                              - filter
                                              type: object
                                            timeSeriesFilterRatio:
                                              description: Parameters to fetch a ratio
                                                between two time series filters.
                                              properties:
                                                denominator:
                                                  description: The denominator of
                                                    the ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                numerator:
                                                  description: The numerator of the
                                                    ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after the ratio is computed.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              type: object
                                            timeSeriesQueryLanguage:
                                              description: A query used to fetch time
                                                series with MQL.
                                              type: string
                                            unitOverride:
                                              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`.
                                              type: string
                                          type: object
                                      required:
                                      - timeSeriesQuery
                                      type: object
                                    type: array
                                  thresholds:
                                    description: Threshold lines drawn horizontally
                                      across the chart.
                                    items:
                                      properties:
                                        color:
                                          description: The state color for this threshold.
                                            Color is not allowed in a XyChart.
                                          type: string
                                        direction:
                                          description: The direction for the current
                                            threshold. Direction is not allowed in
                                            a XyChart.
                                          type: string
                                        label:
                                          description: A label for the threshold.
                                          type: string
                                        targetAxis:
                                          description: The target axis to use for
                                            plotting the threshold. Target axis is
                                            not allowed in a Scorecard.
                                          type: string
                                        value:
                                          description: The value of the threshold.
                                            The value should be defined in the native
                                            scale of the metric.
                                          format: double
                                          type: number
                                      type: object
                                    type: array
                                  timeshiftDuration:
                                    description: The duration used to display a comparison
                                      chart.
                                    type: string
                                  xAxis:
                                    description: The properties applied to the x-axis.
                                    properties:
                                      label:
                                        description: The label of the axis.
                                        type: string
                                      scale:
                                        description: The axis scale. By default, a
                                          linear scale is used.
                                        type: string
                                    type: object
                                  y2Axis:
                                    description: The properties applied to the y2-axis.
                                    properties:
                                      label:
                                        description: The label of the axis.
                                        type: string
                                      scale:
                                        description: The axis scale. By default, a
                                          linear scale is used.
                                        type: string
                                    type: object
                                  yAxis:
                                    description: The properties applied to the y-axis.
                                    properties:
                                      label:
                                        description: The label of the axis.
                                        type: string
                                      scale:
                                        description: The axis scale. By default, a
                                          linear scale is used.
                                        type: string
                                    type: object
                                required:
                                - dataSets
                                type: object
                            type: object
                          type: array
                      type: object
                    type: array
                type: object
              dashboardFilters:
                description: Filters to reduce the amount of data charted based on
                  the filter criteria.
                items:
                  properties:
                    filterType:
                      description: The specified filter type
                      type: string
                    labelKey:
                      description: Required. The key for the label
                      type: string
                    stringValue:
                      description: A variable-length string value.
                      type: string
                    templateVariable:
                      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.
                      type: string
                  required:
                  - labelKey
                  type: object
                type: array
              displayName:
                description: Required. The mutable, human-readable name.
                type: string
              gridLayout:
                description: Content is arranged with a basic layout that re-flows
                  a simple list of informational elements like widgets or tiles.
                properties:
                  columns:
                    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.
                    format: int64
                    type: integer
                  widgets:
                    description: The informational elements that are arranged into
                      the columns row-first.
                    items:
                      properties:
                        alertChart:
                          description: A chart of alert policy data.
                          properties:
                            alertPolicyRef:
                              description: Required. A reference to the MonitoringAlertPolicy.
                              oneOf:
                              - not:
                                  required:
                                  - external
                                required:
                                - name
                              - not:
                                  anyOf:
                                  - required:
                                    - name
                                  - required:
                                    - namespace
                                required:
                                - external
                              properties:
                                external:
                                  description: The MonitoringAlertPolicy link in the
                                    form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                    when not managed by Config Connector.
                                  type: string
                                name:
                                  description: The `name` field of a `MonitoringAlertPolicy`
                                    resource.
                                  type: string
                                namespace:
                                  description: The `namespace` field of a `MonitoringAlertPolicy`
                                    resource.
                                  type: string
                              type: object
                          required:
                          - alertPolicyRef
                          type: object
                        blank:
                          description: A blank space.
                          type: object
                        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.
                          properties:
                            collapsed:
                              description: The collapsed state of the widget on first
                                page load.
                              type: boolean
                          type: object
                        errorReportingPanel:
                          description: A widget that displays a list of error groups.
                          properties:
                            projectRefs:
                              description: The projects from which to gather errors.
                              items:
                                description: The Project that this resource belongs
                                  to.
                                oneOf:
                                - not:
                                    required:
                                    - external
                                  required:
                                  - name
                                  - kind
                                - not:
                                    anyOf:
                                    - required:
                                      - name
                                    - required:
                                      - namespace
                                    - required:
                                      - kind
                                  required:
                                  - external
                                properties:
                                  external:
                                    description: The `projectID` field of a project,
                                      when not managed by Config Connector.
                                    type: string
                                  kind:
                                    description: The kind of the Project resource;
                                      optional but must be `Project` if provided.
                                    type: string
                                  name:
                                    description: The `name` field of a `Project` resource.
                                    type: string
                                  namespace:
                                    description: The `namespace` field of a `Project`
                                      resource.
                                    type: string
                                type: object
                              type: array
                            services:
                              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.
                              items:
                                type: string
                              type: array
                            versions:
                              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.
                              items:
                                type: string
                              type: array
                          type: object
                        id:
                          description: Optional. The widget id. Ids may be made up
                            of alphanumerics, dashes and underscores. Widget ids are
                            optional.
                          type: string
                        incidentList:
                          description: A widget that shows list of incidents.
                          properties:
                            monitoredResources:
                              description: Optional. The monitored resource for which
                                incidents are listed.
                              items:
                                properties:
                                  labels:
                                    additionalProperties:
                                      type: string
                                    description: Required. Values for all of the labels
                                      listed in the associated monitored resource
                                      descriptor.
                                    type: object
                                  type:
                                    description: Required. The monitored resource
                                      type. This field must match the `type` field
                                      of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
                                      object.
                                    type: string
                                type: object
                              type: array
                            policyRefs:
                              description: Optional. A list of alert policies to filter
                                the incident list by.
                              items:
                                oneOf:
                                - not:
                                    required:
                                    - external
                                  required:
                                  - name
                                - not:
                                    anyOf:
                                    - required:
                                      - name
                                    - required:
                                      - namespace
                                  required:
                                  - external
                                properties:
                                  external:
                                    description: The MonitoringAlertPolicy link in
                                      the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                      when not managed by Config Connector.
                                    type: string
                                  name:
                                    description: The `name` field of a `MonitoringAlertPolicy`
                                      resource.
                                    type: string
                                  namespace:
                                    description: The `namespace` field of a `MonitoringAlertPolicy`
                                      resource.
                                    type: string
                                type: object
                              type: array
                          type: object
                        logsPanel:
                          description: A widget that shows a stream of logs.
                          properties:
                            filter:
                              description: A filter that chooses which log entries
                                to return.  See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries).
                              type: string
                            resourceNames:
                              description: The names of logging resources to collect
                                logs for.
                              items:
                                oneOf:
                                - not:
                                    required:
                                    - external
                                  required:
                                  - name
                                  - kind
                                - not:
                                    anyOf:
                                    - required:
                                      - name
                                    - required:
                                      - namespace
                                    - required:
                                      - kind
                                  required:
                                  - external
                                properties:
                                  external:
                                    description: The external name of the referenced
                                      resource
                                    type: string
                                  kind:
                                    description: Kind of the referent.
                                    type: string
                                  name:
                                    description: 'Name of the referent. More info:
                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  namespace:
                                    description: 'Namespace of the referent. More
                                      info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                                    type: string
                                type: object
                              type: array
                          type: object
                        pieChart:
                          description: A widget that displays timeseries data as a
                            pie chart.
                          properties:
                            chartType:
                              description: Required. Indicates the visualization type
                                for the PieChart.
                              type: string
                            dataSets:
                              description: Required. The queries for the chart's data.
                              items:
                                properties:
                                  minAlignmentPeriod:
                                    description: Optional. The lower bound on data
                                      point frequency for this data set.
                                    type: string
                                  sliceNameTemplate:
                                    description: Optional. A template for the name
                                      of the slice.
                                    type: string
                                  timeSeriesQuery:
                                    description: Required. The query for the PieChart.
                                      See, `google.monitoring.dashboard.v1.TimeSeriesQuery`.
                                    properties:
                                      outputFullDuration:
                                        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.
                                        type: boolean
                                      prometheusQuery:
                                        description: A query used to fetch time series
                                          with PromQL.
                                        type: string
                                      timeSeriesFilter:
                                        description: Filter parameters to fetch time
                                          series.
                                        properties:
                                          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.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                          filter:
                                            description: Required. The [monitoring
                                              filter](https://cloud.google.com/monitoring/api/v3/filters)
                                              that identifies the metric types, resources,
                                              and projects to query.
                                            type: string
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after `aggregation` is applied.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        required:
                                        - filter
                                        type: object
                                      timeSeriesFilterRatio:
                                        description: Parameters to fetch a ratio between
                                          two time series filters.
                                        properties:
                                          denominator:
                                            description: The denominator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          numerator:
                                            description: The numerator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after the ratio is computed.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        type: object
                                      timeSeriesQueryLanguage:
                                        description: A query used to fetch time series
                                          with MQL.
                                        type: string
                                      unitOverride:
                                        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`.
                                        type: string
                                    type: object
                                required:
                                - timeSeriesQuery
                                type: object
                              type: array
                            showLabels:
                              description: Optional. Indicates whether or not the
                                pie chart should show slices' labels
                              type: boolean
                          required:
                          - chartType
                          - dataSets
                          type: object
                        scorecard:
                          description: A scorecard summarizing time series data.
                          properties:
                            blankView:
                              description: Will cause the `Scorecard` to show only
                                the value, with no indicator to its value relative
                                to its thresholds.
                              type: object
                            gaugeView:
                              description: Will cause the scorecard to show a gauge
                                chart.
                              properties:
                                lowerBound:
                                  description: The lower bound for this gauge chart.
                                    The value of the chart should always be greater
                                    than or equal to this.
                                  format: double
                                  type: number
                                upperBound:
                                  description: The upper bound for this gauge chart.
                                    The value of the chart should always be less than
                                    or equal to this.
                                  format: double
                                  type: number
                              type: object
                            sparkChartView:
                              description: Will cause the scorecard to show a spark
                                chart.
                              properties:
                                minAlignmentPeriod:
                                  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.
                                  type: string
                                sparkChartType:
                                  description: Required. The type of sparkchart to
                                    show in this chartView.
                                  type: string
                              required:
                              - sparkChartType
                              type: object
                            thresholds:
                              description: The thresholds used to determine the state
                                of the scorecard given the time series' current value.
                              items:
                                properties:
                                  color:
                                    description: The state color for this threshold.
                                      Color is not allowed in a XyChart.
                                    type: string
                                  direction:
                                    description: The direction for the current threshold.
                                      Direction is not allowed in a XyChart.
                                    type: string
                                  label:
                                    description: A label for the threshold.
                                    type: string
                                  targetAxis:
                                    description: The target axis to use for plotting
                                      the threshold. Target axis is not allowed in
                                      a Scorecard.
                                    type: string
                                  value:
                                    description: The value of the threshold. The value
                                      should be defined in the native scale of the
                                      metric.
                                    format: double
                                    type: number
                                type: object
                              type: array
                            timeSeriesQuery:
                              description: Required. Fields for querying time series
                                data from the Stackdriver metrics API.
                              properties:
                                outputFullDuration:
                                  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.
                                  type: boolean
                                prometheusQuery:
                                  description: A query used to fetch time series with
                                    PromQL.
                                  type: string
                                timeSeriesFilter:
                                  description: Filter parameters to fetch time series.
                                  properties:
                                    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.
                                      properties:
                                        alignmentPeriod:
                                          description: The `alignment_period` specifies
                                            a time interval, in seconds, that is used
                                            to divide the data in all the [time series][google.monitoring.v3.TimeSeries]
                                            into consistent blocks of time. This will
                                            be done before the per-series aligner
                                            can be applied to the data.
                                          type: string
                                        crossSeriesReducer:
                                          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.
                                          type: string
                                        groupByFields:
                                          description: The set of fields to preserve
                                            when `cross_series_reducer` is specified.
                                          items:
                                            type: string
                                          type: array
                                        perSeriesAligner:
                                          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.
                                          type: string
                                      type: object
                                    filter:
                                      description: Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                        that identifies the metric types, resources,
                                        and projects to query.
                                      type: string
                                    pickTimeSeriesFilter:
                                      description: Ranking based time series filter.
                                      properties:
                                        direction:
                                          description: How to use the ranking to select
                                            time series that pass through the filter.
                                          type: string
                                        numTimeSeries:
                                          description: How many time series to allow
                                            to pass through the filter.
                                          format: int32
                                          type: integer
                                        rankingMethod:
                                          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.'
                                          type: string
                                      type: object
                                    secondaryAggregation:
                                      description: Apply a second aggregation after
                                        `aggregation` is applied.
                                      properties:
                                        alignmentPeriod:
                                          description: The `alignment_period` specifies
                                            a time interval, in seconds, that is used
                                            to divide the data in all the [time series][google.monitoring.v3.TimeSeries]
                                            into consistent blocks of time. This will
                                            be done before the per-series aligner
                                            can be applied to the data.
                                          type: string
                                        crossSeriesReducer:
                                          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.
                                          type: string
                                        groupByFields:
                                          description: The set of fields to preserve
                                            when `cross_series_reducer` is specified.
                                          items:
                                            type: string
                                          type: array
                                        perSeriesAligner:
                                          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.
                                          type: string
                                      type: object
                                  required:
                                  - filter
                                  type: object
                                timeSeriesFilterRatio:
                                  description: Parameters to fetch a ratio between
                                    two time series filters.
                                  properties:
                                    denominator:
                                      description: The denominator of the ratio.
                                      properties:
                                        aggregation:
                                          description: By default, the raw time series
                                            data is returned.
                                          properties:
                                            alignmentPeriod:
                                              description: The `alignment_period`
                                                specifies a time interval, in seconds,
                                                that is used to divide the data in
                                                all the [time series][google.monitoring.v3.TimeSeries]
                                                into consistent blocks of time. This
                                                will be done before the per-series
                                                aligner can be applied to the data.
                                              type: string
                                            crossSeriesReducer:
                                              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.
                                              type: string
                                            groupByFields:
                                              description: The set of fields to preserve
                                                when `cross_series_reducer` is specified.
                                              items:
                                                type: string
                                              type: array
                                            perSeriesAligner:
                                              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.
                                              type: string
                                          type: object
                                        filter:
                                          description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                            that identifies the metric types, resources,
                                            and projects to query.
                                          type: string
                                      required:
                                      - filter
                                      type: object
                                    numerator:
                                      description: The numerator of the ratio.
                                      properties:
                                        aggregation:
                                          description: By default, the raw time series
                                            data is returned.
                                          properties:
                                            alignmentPeriod:
                                              description: The `alignment_period`
                                                specifies a time interval, in seconds,
                                                that is used to divide the data in
                                                all the [time series][google.monitoring.v3.TimeSeries]
                                                into consistent blocks of time. This
                                                will be done before the per-series
                                                aligner can be applied to the data.
                                              type: string
                                            crossSeriesReducer:
                                              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.
                                              type: string
                                            groupByFields:
                                              description: The set of fields to preserve
                                                when `cross_series_reducer` is specified.
                                              items:
                                                type: string
                                              type: array
                                            perSeriesAligner:
                                              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.
                                              type: string
                                          type: object
                                        filter:
                                          description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                            that identifies the metric types, resources,
                                            and projects to query.
                                          type: string
                                      required:
                                      - filter
                                      type: object
                                    pickTimeSeriesFilter:
                                      description: Ranking based time series filter.
                                      properties:
                                        direction:
                                          description: How to use the ranking to select
                                            time series that pass through the filter.
                                          type: string
                                        numTimeSeries:
                                          description: How many time series to allow
                                            to pass through the filter.
                                          format: int32
                                          type: integer
                                        rankingMethod:
                                          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.'
                                          type: string
                                      type: object
                                    secondaryAggregation:
                                      description: Apply a second aggregation after
                                        the ratio is computed.
                                      properties:
                                        alignmentPeriod:
                                          description: The `alignment_period` specifies
                                            a time interval, in seconds, that is used
                                            to divide the data in all the [time series][google.monitoring.v3.TimeSeries]
                                            into consistent blocks of time. This will
                                            be done before the per-series aligner
                                            can be applied to the data.
                                          type: string
                                        crossSeriesReducer:
                                          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.
                                          type: string
                                        groupByFields:
                                          description: The set of fields to preserve
                                            when `cross_series_reducer` is specified.
                                          items:
                                            type: string
                                          type: array
                                        perSeriesAligner:
                                          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.
                                          type: string
                                      type: object
                                  type: object
                                timeSeriesQueryLanguage:
                                  description: A query used to fetch time series with
                                    MQL.
                                  type: string
                                unitOverride:
                                  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`.
                                  type: string
                              type: object
                          required:
                          - timeSeriesQuery
                          type: object
                        sectionHeader:
                          description: A widget that defines a section header for
                            easier navigation of the dashboard.
                          properties:
                            dividerBelow:
                              description: Whether to insert a divider below the section
                                in the table of contents
                              type: boolean
                            subtitle:
                              description: The subtitle of the section
                              type: string
                          type: object
                        singleViewGroup:
                          description: A widget that groups the other widgets by using
                            a dropdown menu.
                          type: object
                        text:
                          description: A raw string or markdown displaying textual
                            content.
                          properties:
                            content:
                              description: The text content to be displayed.
                              type: string
                            format:
                              description: How the text content is formatted.
                              type: string
                            style:
                              description: How the text is styled
                              properties:
                                backgroundColor:
                                  description: The background color as a hex string.
                                    "#RRGGBB" or "#RGB"
                                  type: string
                                fontSize:
                                  description: Font sizes for both the title and content.
                                    The title will still be larger relative to the
                                    content.
                                  type: string
                                horizontalAlignment:
                                  description: The horizontal alignment of both the
                                    title and content
                                  type: string
                                padding:
                                  description: The amount of padding around the widget
                                  type: string
                                pointerLocation:
                                  description: The pointer location for this widget
                                    (also sometimes called a "tail")
                                  type: string
                                textColor:
                                  description: The text color as a hex string. "#RRGGBB"
                                    or "#RGB"
                                  type: string
                                verticalAlignment:
                                  description: The vertical alignment of both the
                                    title and content
                                  type: string
                              type: object
                          type: object
                        timeSeriesTable:
                          description: A widget that displays time series data in
                            a tabular format.
                          properties:
                            columnSettings:
                              description: Optional. The list of the persistent column
                                settings for the table.
                              items:
                                properties:
                                  column:
                                    description: Required. The id of the column.
                                    type: string
                                  visible:
                                    description: Required. Whether the column should
                                      be visible on page load.
                                    type: boolean
                                required:
                                - column
                                - visible
                                type: object
                              type: array
                            dataSets:
                              description: Required. The data displayed in this table.
                              items:
                                properties:
                                  minAlignmentPeriod:
                                    description: Optional. The lower bound on data
                                      point frequency for this data set.
                                    type: string
                                  tableDisplayOptions:
                                    description: Optional. Table display options for
                                      configuring how the table is rendered.
                                    properties:
                                      shownColumns:
                                        description: Optional. This field is unused
                                          and has been replaced by TimeSeriesTable.column_settings
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  tableTemplate:
                                    description: Optional. A template string for naming
                                      `TimeSeries` in the resulting data set.
                                    type: string
                                  timeSeriesQuery:
                                    description: Required. Fields for querying time
                                      series data from the Stackdriver metrics API.
                                    properties:
                                      outputFullDuration:
                                        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.
                                        type: boolean
                                      prometheusQuery:
                                        description: A query used to fetch time series
                                          with PromQL.
                                        type: string
                                      timeSeriesFilter:
                                        description: Filter parameters to fetch time
                                          series.
                                        properties:
                                          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.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                          filter:
                                            description: Required. The [monitoring
                                              filter](https://cloud.google.com/monitoring/api/v3/filters)
                                              that identifies the metric types, resources,
                                              and projects to query.
                                            type: string
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after `aggregation` is applied.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        required:
                                        - filter
                                        type: object
                                      timeSeriesFilterRatio:
                                        description: Parameters to fetch a ratio between
                                          two time series filters.
                                        properties:
                                          denominator:
                                            description: The denominator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          numerator:
                                            description: The numerator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after the ratio is computed.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        type: object
                                      timeSeriesQueryLanguage:
                                        description: A query used to fetch time series
                                          with MQL.
                                        type: string
                                      unitOverride:
                                        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`.
                                        type: string
                                    type: object
                                type: object
                              type: array
                            metricVisualization:
                              description: Optional. Store rendering strategy
                              type: string
                          required:
                          - dataSets
                          type: object
                        title:
                          description: Optional. The title of the widget.
                          type: string
                        xyChart:
                          description: A chart of time series data.
                          properties:
                            chartOptions:
                              description: Display options for the chart.
                              properties:
                                mode:
                                  description: The chart mode.
                                  type: string
                              type: object
                            dataSets:
                              description: Required. The data displayed in this chart.
                              items:
                                properties:
                                  legendTemplate:
                                    description: A template string for naming `TimeSeries`
                                      in the resulting data set.
                                    type: string
                                  minAlignmentPeriod:
                                    description: Optional. The lower bound on data
                                      point frequency for this data set.
                                    type: string
                                  plotType:
                                    description: How this data should be plotted on
                                      the chart.
                                    type: string
                                  targetAxis:
                                    description: Optional. The target axis to use
                                      for plotting the metric.
                                    type: string
                                  timeSeriesQuery:
                                    description: Fields for querying time series data
                                      from the Stackdriver metrics API.
                                    properties:
                                      outputFullDuration:
                                        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.
                                        type: boolean
                                      prometheusQuery:
                                        description: A query used to fetch time series
                                          with PromQL.
                                        type: string
                                      timeSeriesFilter:
                                        description: Filter parameters to fetch time
                                          series.
                                        properties:
                                          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.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                          filter:
                                            description: Required. The [monitoring
                                              filter](https://cloud.google.com/monitoring/api/v3/filters)
                                              that identifies the metric types, resources,
                                              and projects to query.
                                            type: string
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after `aggregation` is applied.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        required:
                                        - filter
                                        type: object
                                      timeSeriesFilterRatio:
                                        description: Parameters to fetch a ratio between
                                          two time series filters.
                                        properties:
                                          denominator:
                                            description: The denominator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          numerator:
                                            description: The numerator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after the ratio is computed.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        type: object
                                      timeSeriesQueryLanguage:
                                        description: A query used to fetch time series
                                          with MQL.
                                        type: string
                                      unitOverride:
                                        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`.
                                        type: string
                                    type: object
                                required:
                                - timeSeriesQuery
                                type: object
                              type: array
                            thresholds:
                              description: Threshold lines drawn horizontally across
                                the chart.
                              items:
                                properties:
                                  color:
                                    description: The state color for this threshold.
                                      Color is not allowed in a XyChart.
                                    type: string
                                  direction:
                                    description: The direction for the current threshold.
                                      Direction is not allowed in a XyChart.
                                    type: string
                                  label:
                                    description: A label for the threshold.
                                    type: string
                                  targetAxis:
                                    description: The target axis to use for plotting
                                      the threshold. Target axis is not allowed in
                                      a Scorecard.
                                    type: string
                                  value:
                                    description: The value of the threshold. The value
                                      should be defined in the native scale of the
                                      metric.
                                    format: double
                                    type: number
                                type: object
                              type: array
                            timeshiftDuration:
                              description: The duration used to display a comparison
                                chart.
                              type: string
                            xAxis:
                              description: The properties applied to the x-axis.
                              properties:
                                label:
                                  description: The label of the axis.
                                  type: string
                                scale:
                                  description: The axis scale. By default, a linear
                                    scale is used.
                                  type: string
                              type: object
                            y2Axis:
                              description: The properties applied to the y2-axis.
                              properties:
                                label:
                                  description: The label of the axis.
                                  type: string
                                scale:
                                  description: The axis scale. By default, a linear
                                    scale is used.
                                  type: string
                              type: object
                            yAxis:
                              description: The properties applied to the y-axis.
                              properties:
                                label:
                                  description: The label of the axis.
                                  type: string
                                scale:
                                  description: The axis scale. By default, a linear
                                    scale is used.
                                  type: string
                              type: object
                          required:
                          - dataSets
                          type: object
                      type: object
                    type: array
                type: object
              mosaicLayout:
                description: The content is arranged as a grid of tiles, with each
                  content widget occupying one or more grid blocks.
                properties:
                  columns:
                    description: The number of columns in the mosaic grid. The number
                      of columns must be between 1 and 12, inclusive.
                    format: int32
                    type: integer
                  tiles:
                    description: The tiles to display.
                    items:
                      properties:
                        height:
                          description: The height of the tile, measured in grid blocks.
                            Tiles must have a minimum height of 1.
                          format: int32
                          type: integer
                        widget:
                          description: The informational widget contained in the tile.
                            For example an `XyChart`.
                          properties:
                            alertChart:
                              description: A chart of alert policy data.
                              properties:
                                alertPolicyRef:
                                  description: Required. A reference to the MonitoringAlertPolicy.
                                  oneOf:
                                  - not:
                                      required:
                                      - external
                                    required:
                                    - name
                                  - not:
                                      anyOf:
                                      - required:
                                        - name
                                      - required:
                                        - namespace
                                    required:
                                    - external
                                  properties:
                                    external:
                                      description: The MonitoringAlertPolicy link
                                        in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                        when not managed by Config Connector.
                                      type: string
                                    name:
                                      description: The `name` field of a `MonitoringAlertPolicy`
                                        resource.
                                      type: string
                                    namespace:
                                      description: The `namespace` field of a `MonitoringAlertPolicy`
                                        resource.
                                      type: string
                                  type: object
                              required:
                              - alertPolicyRef
                              type: object
                            blank:
                              description: A blank space.
                              type: object
                            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.
                              properties:
                                collapsed:
                                  description: The collapsed state of the widget on
                                    first page load.
                                  type: boolean
                              type: object
                            errorReportingPanel:
                              description: A widget that displays a list of error
                                groups.
                              properties:
                                projectRefs:
                                  description: The projects from which to gather errors.
                                  items:
                                    description: The Project that this resource belongs
                                      to.
                                    oneOf:
                                    - not:
                                        required:
                                        - external
                                      required:
                                      - name
                                      - kind
                                    - not:
                                        anyOf:
                                        - required:
                                          - name
                                        - required:
                                          - namespace
                                        - required:
                                          - kind
                                      required:
                                      - external
                                    properties:
                                      external:
                                        description: The `projectID` field of a project,
                                          when not managed by Config Connector.
                                        type: string
                                      kind:
                                        description: The kind of the Project resource;
                                          optional but must be `Project` if provided.
                                        type: string
                                      name:
                                        description: The `name` field of a `Project`
                                          resource.
                                        type: string
                                      namespace:
                                        description: The `namespace` field of a `Project`
                                          resource.
                                        type: string
                                    type: object
                                  type: array
                                services:
                                  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.
                                  items:
                                    type: string
                                  type: array
                                versions:
                                  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.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            id:
                              description: Optional. The widget id. Ids may be made
                                up of alphanumerics, dashes and underscores. Widget
                                ids are optional.
                              type: string
                            incidentList:
                              description: A widget that shows list of incidents.
                              properties:
                                monitoredResources:
                                  description: Optional. The monitored resource for
                                    which incidents are listed.
                                  items:
                                    properties:
                                      labels:
                                        additionalProperties:
                                          type: string
                                        description: Required. Values for all of the
                                          labels listed in the associated monitored
                                          resource descriptor.
                                        type: object
                                      type:
                                        description: Required. The monitored resource
                                          type. This field must match the `type` field
                                          of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
                                          object.
                                        type: string
                                    type: object
                                  type: array
                                policyRefs:
                                  description: Optional. A list of alert policies
                                    to filter the incident list by.
                                  items:
                                    oneOf:
                                    - not:
                                        required:
                                        - external
                                      required:
                                      - name
                                    - not:
                                        anyOf:
                                        - required:
                                          - name
                                        - required:
                                          - namespace
                                      required:
                                      - external
                                    properties:
                                      external:
                                        description: The MonitoringAlertPolicy link
                                          in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                          when not managed by Config Connector.
                                        type: string
                                      name:
                                        description: The `name` field of a `MonitoringAlertPolicy`
                                          resource.
                                        type: string
                                      namespace:
                                        description: The `namespace` field of a `MonitoringAlertPolicy`
                                          resource.
                                        type: string
                                    type: object
                                  type: array
                              type: object
                            logsPanel:
                              description: A widget that shows a stream of logs.
                              properties:
                                filter:
                                  description: A filter that chooses which log entries
                                    to return.  See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries).
                                  type: string
                                resourceNames:
                                  description: The names of logging resources to collect
                                    logs for.
                                  items:
                                    oneOf:
                                    - not:
                                        required:
                                        - external
                                      required:
                                      - name
                                      - kind
                                    - not:
                                        anyOf:
                                        - required:
                                          - name
                                        - required:
                                          - namespace
                                        - required:
                                          - kind
                                      required:
                                      - external
                                    properties:
                                      external:
                                        description: The external name of the referenced
                                          resource
                                        type: string
                                      kind:
                                        description: Kind of the referent.
                                        type: string
                                      name:
                                        description: 'Name of the referent. More info:
                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      namespace:
                                        description: 'Namespace of the referent. More
                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                                        type: string
                                    type: object
                                  type: array
                              type: object
                            pieChart:
                              description: A widget that displays timeseries data
                                as a pie chart.
                              properties:
                                chartType:
                                  description: Required. Indicates the visualization
                                    type for the PieChart.
                                  type: string
                                dataSets:
                                  description: Required. The queries for the chart's
                                    data.
                                  items:
                                    properties:
                                      minAlignmentPeriod:
                                        description: Optional. The lower bound on
                                          data point frequency for this data set.
                                        type: string
                                      sliceNameTemplate:
                                        description: Optional. A template for the
                                          name of the slice.
                                        type: string
                                      timeSeriesQuery:
                                        description: Required. The query for the PieChart.
                                          See, `google.monitoring.dashboard.v1.TimeSeriesQuery`.
                                        properties:
                                          outputFullDuration:
                                            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.
                                            type: boolean
                                          prometheusQuery:
                                            description: A query used to fetch time
                                              series with PromQL.
                                            type: string
                                          timeSeriesFilter:
                                            description: Filter parameters to fetch
                                              time series.
                                            properties:
                                              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.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: Required. The [monitoring
                                                  filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                              pickTimeSeriesFilter:
                                                description: Ranking based time series
                                                  filter.
                                                properties:
                                                  direction:
                                                    description: How to use the ranking
                                                      to select time series that pass
                                                      through the filter.
                                                    type: string
                                                  numTimeSeries:
                                                    description: How many time series
                                                      to allow to pass through the
                                                      filter.
                                                    format: int32
                                                    type: integer
                                                  rankingMethod:
                                                    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.'
                                                    type: string
                                                type: object
                                              secondaryAggregation:
                                                description: Apply a second aggregation
                                                  after `aggregation` is applied.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                            required:
                                            - filter
                                            type: object
                                          timeSeriesFilterRatio:
                                            description: Parameters to fetch a ratio
                                              between two time series filters.
                                            properties:
                                              denominator:
                                                description: The denominator of the
                                                  ratio.
                                                properties:
                                                  aggregation:
                                                    description: By default, the raw
                                                      time series data is returned.
                                                    properties:
                                                      alignmentPeriod:
                                                        description: The `alignment_period`
                                                          specifies a time interval,
                                                          in seconds, that is used
                                                          to divide the data in all
                                                          the [time series][google.monitoring.v3.TimeSeries]
                                                          into consistent blocks of
                                                          time. This will be done
                                                          before the per-series aligner
                                                          can be applied to the data.
                                                        type: string
                                                      crossSeriesReducer:
                                                        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.
                                                        type: string
                                                      groupByFields:
                                                        description: The set of fields
                                                          to preserve when `cross_series_reducer`
                                                          is specified.
                                                        items:
                                                          type: string
                                                        type: array
                                                      perSeriesAligner:
                                                        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.
                                                        type: string
                                                    type: object
                                                  filter:
                                                    description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                      that identifies the metric types,
                                                      resources, and projects to query.
                                                    type: string
                                                required:
                                                - filter
                                                type: object
                                              numerator:
                                                description: The numerator of the
                                                  ratio.
                                                properties:
                                                  aggregation:
                                                    description: By default, the raw
                                                      time series data is returned.
                                                    properties:
                                                      alignmentPeriod:
                                                        description: The `alignment_period`
                                                          specifies a time interval,
                                                          in seconds, that is used
                                                          to divide the data in all
                                                          the [time series][google.monitoring.v3.TimeSeries]
                                                          into consistent blocks of
                                                          time. This will be done
                                                          before the per-series aligner
                                                          can be applied to the data.
                                                        type: string
                                                      crossSeriesReducer:
                                                        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.
                                                        type: string
                                                      groupByFields:
                                                        description: The set of fields
                                                          to preserve when `cross_series_reducer`
                                                          is specified.
                                                        items:
                                                          type: string
                                                        type: array
                                                      perSeriesAligner:
                                                        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.
                                                        type: string
                                                    type: object
                                                  filter:
                                                    description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                      that identifies the metric types,
                                                      resources, and projects to query.
                                                    type: string
                                                required:
                                                - filter
                                                type: object
                                              pickTimeSeriesFilter:
                                                description: Ranking based time series
                                                  filter.
                                                properties:
                                                  direction:
                                                    description: How to use the ranking
                                                      to select time series that pass
                                                      through the filter.
                                                    type: string
                                                  numTimeSeries:
                                                    description: How many time series
                                                      to allow to pass through the
                                                      filter.
                                                    format: int32
                                                    type: integer
                                                  rankingMethod:
                                                    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.'
                                                    type: string
                                                type: object
                                              secondaryAggregation:
                                                description: Apply a second aggregation
                                                  after the ratio is computed.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                            type: object
                                          timeSeriesQueryLanguage:
                                            description: A query used to fetch time
                                              series with MQL.
                                            type: string
                                          unitOverride:
                                            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`.
                                            type: string
                                        type: object
                                    required:
                                    - timeSeriesQuery
                                    type: object
                                  type: array
                                showLabels:
                                  description: Optional. Indicates whether or not
                                    the pie chart should show slices' labels
                                  type: boolean
                              required:
                              - chartType
                              - dataSets
                              type: object
                            scorecard:
                              description: A scorecard summarizing time series data.
                              properties:
                                blankView:
                                  description: Will cause the `Scorecard` to show
                                    only the value, with no indicator to its value
                                    relative to its thresholds.
                                  type: object
                                gaugeView:
                                  description: Will cause the scorecard to show a
                                    gauge chart.
                                  properties:
                                    lowerBound:
                                      description: The lower bound for this gauge
                                        chart. The value of the chart should always
                                        be greater than or equal to this.
                                      format: double
                                      type: number
                                    upperBound:
                                      description: The upper bound for this gauge
                                        chart. The value of the chart should always
                                        be less than or equal to this.
                                      format: double
                                      type: number
                                  type: object
                                sparkChartView:
                                  description: Will cause the scorecard to show a
                                    spark chart.
                                  properties:
                                    minAlignmentPeriod:
                                      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.
                                      type: string
                                    sparkChartType:
                                      description: Required. The type of sparkchart
                                        to show in this chartView.
                                      type: string
                                  required:
                                  - sparkChartType
                                  type: object
                                thresholds:
                                  description: The thresholds used to determine the
                                    state of the scorecard given the time series'
                                    current value.
                                  items:
                                    properties:
                                      color:
                                        description: The state color for this threshold.
                                          Color is not allowed in a XyChart.
                                        type: string
                                      direction:
                                        description: The direction for the current
                                          threshold. Direction is not allowed in a
                                          XyChart.
                                        type: string
                                      label:
                                        description: A label for the threshold.
                                        type: string
                                      targetAxis:
                                        description: The target axis to use for plotting
                                          the threshold. Target axis is not allowed
                                          in a Scorecard.
                                        type: string
                                      value:
                                        description: The value of the threshold. The
                                          value should be defined in the native scale
                                          of the metric.
                                        format: double
                                        type: number
                                    type: object
                                  type: array
                                timeSeriesQuery:
                                  description: Required. Fields for querying time
                                    series data from the Stackdriver metrics API.
                                  properties:
                                    outputFullDuration:
                                      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.
                                      type: boolean
                                    prometheusQuery:
                                      description: A query used to fetch time series
                                        with PromQL.
                                      type: string
                                    timeSeriesFilter:
                                      description: Filter parameters to fetch time
                                        series.
                                      properties:
                                        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.
                                          properties:
                                            alignmentPeriod:
                                              description: The `alignment_period`
                                                specifies a time interval, in seconds,
                                                that is used to divide the data in
                                                all the [time series][google.monitoring.v3.TimeSeries]
                                                into consistent blocks of time. This
                                                will be done before the per-series
                                                aligner can be applied to the data.
                                              type: string
                                            crossSeriesReducer:
                                              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.
                                              type: string
                                            groupByFields:
                                              description: The set of fields to preserve
                                                when `cross_series_reducer` is specified.
                                              items:
                                                type: string
                                              type: array
                                            perSeriesAligner:
                                              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.
                                              type: string
                                          type: object
                                        filter:
                                          description: Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                            that identifies the metric types, resources,
                                            and projects to query.
                                          type: string
                                        pickTimeSeriesFilter:
                                          description: Ranking based time series filter.
                                          properties:
                                            direction:
                                              description: How to use the ranking
                                                to select time series that pass through
                                                the filter.
                                              type: string
                                            numTimeSeries:
                                              description: How many time series to
                                                allow to pass through the filter.
                                              format: int32
                                              type: integer
                                            rankingMethod:
                                              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.'
                                              type: string
                                          type: object
                                        secondaryAggregation:
                                          description: Apply a second aggregation
                                            after `aggregation` is applied.
                                          properties:
                                            alignmentPeriod:
                                              description: The `alignment_period`
                                                specifies a time interval, in seconds,
                                                that is used to divide the data in
                                                all the [time series][google.monitoring.v3.TimeSeries]
                                                into consistent blocks of time. This
                                                will be done before the per-series
                                                aligner can be applied to the data.
                                              type: string
                                            crossSeriesReducer:
                                              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.
                                              type: string
                                            groupByFields:
                                              description: The set of fields to preserve
                                                when `cross_series_reducer` is specified.
                                              items:
                                                type: string
                                              type: array
                                            perSeriesAligner:
                                              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.
                                              type: string
                                          type: object
                                      required:
                                      - filter
                                      type: object
                                    timeSeriesFilterRatio:
                                      description: Parameters to fetch a ratio between
                                        two time series filters.
                                      properties:
                                        denominator:
                                          description: The denominator of the ratio.
                                          properties:
                                            aggregation:
                                              description: By default, the raw time
                                                series data is returned.
                                              properties:
                                                alignmentPeriod:
                                                  description: The `alignment_period`
                                                    specifies a time interval, in
                                                    seconds, that is used to divide
                                                    the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                    into consistent blocks of time.
                                                    This will be done before the per-series
                                                    aligner can be applied to the
                                                    data.
                                                  type: string
                                                crossSeriesReducer:
                                                  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.
                                                  type: string
                                                groupByFields:
                                                  description: The set of fields to
                                                    preserve when `cross_series_reducer`
                                                    is specified.
                                                  items:
                                                    type: string
                                                  type: array
                                                perSeriesAligner:
                                                  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.
                                                  type: string
                                              type: object
                                            filter:
                                              description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                that identifies the metric types,
                                                resources, and projects to query.
                                              type: string
                                          required:
                                          - filter
                                          type: object
                                        numerator:
                                          description: The numerator of the ratio.
                                          properties:
                                            aggregation:
                                              description: By default, the raw time
                                                series data is returned.
                                              properties:
                                                alignmentPeriod:
                                                  description: The `alignment_period`
                                                    specifies a time interval, in
                                                    seconds, that is used to divide
                                                    the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                    into consistent blocks of time.
                                                    This will be done before the per-series
                                                    aligner can be applied to the
                                                    data.
                                                  type: string
                                                crossSeriesReducer:
                                                  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.
                                                  type: string
                                                groupByFields:
                                                  description: The set of fields to
                                                    preserve when `cross_series_reducer`
                                                    is specified.
                                                  items:
                                                    type: string
                                                  type: array
                                                perSeriesAligner:
                                                  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.
                                                  type: string
                                              type: object
                                            filter:
                                              description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                that identifies the metric types,
                                                resources, and projects to query.
                                              type: string
                                          required:
                                          - filter
                                          type: object
                                        pickTimeSeriesFilter:
                                          description: Ranking based time series filter.
                                          properties:
                                            direction:
                                              description: How to use the ranking
                                                to select time series that pass through
                                                the filter.
                                              type: string
                                            numTimeSeries:
                                              description: How many time series to
                                                allow to pass through the filter.
                                              format: int32
                                              type: integer
                                            rankingMethod:
                                              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.'
                                              type: string
                                          type: object
                                        secondaryAggregation:
                                          description: Apply a second aggregation
                                            after the ratio is computed.
                                          properties:
                                            alignmentPeriod:
                                              description: The `alignment_period`
                                                specifies a time interval, in seconds,
                                                that is used to divide the data in
                                                all the [time series][google.monitoring.v3.TimeSeries]
                                                into consistent blocks of time. This
                                                will be done before the per-series
                                                aligner can be applied to the data.
                                              type: string
                                            crossSeriesReducer:
                                              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.
                                              type: string
                                            groupByFields:
                                              description: The set of fields to preserve
                                                when `cross_series_reducer` is specified.
                                              items:
                                                type: string
                                              type: array
                                            perSeriesAligner:
                                              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.
                                              type: string
                                          type: object
                                      type: object
                                    timeSeriesQueryLanguage:
                                      description: A query used to fetch time series
                                        with MQL.
                                      type: string
                                    unitOverride:
                                      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`.
                                      type: string
                                  type: object
                              required:
                              - timeSeriesQuery
                              type: object
                            sectionHeader:
                              description: A widget that defines a section header
                                for easier navigation of the dashboard.
                              properties:
                                dividerBelow:
                                  description: Whether to insert a divider below the
                                    section in the table of contents
                                  type: boolean
                                subtitle:
                                  description: The subtitle of the section
                                  type: string
                              type: object
                            singleViewGroup:
                              description: A widget that groups the other widgets
                                by using a dropdown menu.
                              type: object
                            text:
                              description: A raw string or markdown displaying textual
                                content.
                              properties:
                                content:
                                  description: The text content to be displayed.
                                  type: string
                                format:
                                  description: How the text content is formatted.
                                  type: string
                                style:
                                  description: How the text is styled
                                  properties:
                                    backgroundColor:
                                      description: The background color as a hex string.
                                        "#RRGGBB" or "#RGB"
                                      type: string
                                    fontSize:
                                      description: Font sizes for both the title and
                                        content. The title will still be larger relative
                                        to the content.
                                      type: string
                                    horizontalAlignment:
                                      description: The horizontal alignment of both
                                        the title and content
                                      type: string
                                    padding:
                                      description: The amount of padding around the
                                        widget
                                      type: string
                                    pointerLocation:
                                      description: The pointer location for this widget
                                        (also sometimes called a "tail")
                                      type: string
                                    textColor:
                                      description: The text color as a hex string.
                                        "#RRGGBB" or "#RGB"
                                      type: string
                                    verticalAlignment:
                                      description: The vertical alignment of both
                                        the title and content
                                      type: string
                                  type: object
                              type: object
                            timeSeriesTable:
                              description: A widget that displays time series data
                                in a tabular format.
                              properties:
                                columnSettings:
                                  description: Optional. The list of the persistent
                                    column settings for the table.
                                  items:
                                    properties:
                                      column:
                                        description: Required. The id of the column.
                                        type: string
                                      visible:
                                        description: Required. Whether the column
                                          should be visible on page load.
                                        type: boolean
                                    required:
                                    - column
                                    - visible
                                    type: object
                                  type: array
                                dataSets:
                                  description: Required. The data displayed in this
                                    table.
                                  items:
                                    properties:
                                      minAlignmentPeriod:
                                        description: Optional. The lower bound on
                                          data point frequency for this data set.
                                        type: string
                                      tableDisplayOptions:
                                        description: Optional. Table display options
                                          for configuring how the table is rendered.
                                        properties:
                                          shownColumns:
                                            description: Optional. This field is unused
                                              and has been replaced by TimeSeriesTable.column_settings
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      tableTemplate:
                                        description: Optional. A template string for
                                          naming `TimeSeries` in the resulting data
                                          set.
                                        type: string
                                      timeSeriesQuery:
                                        description: Required. Fields for querying
                                          time series data from the Stackdriver metrics
                                          API.
                                        properties:
                                          outputFullDuration:
                                            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.
                                            type: boolean
                                          prometheusQuery:
                                            description: A query used to fetch time
                                              series with PromQL.
                                            type: string
                                          timeSeriesFilter:
                                            description: Filter parameters to fetch
                                              time series.
                                            properties:
                                              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.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: Required. The [monitoring
                                                  filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                              pickTimeSeriesFilter:
                                                description: Ranking based time series
                                                  filter.
                                                properties:
                                                  direction:
                                                    description: How to use the ranking
                                                      to select time series that pass
                                                      through the filter.
                                                    type: string
                                                  numTimeSeries:
                                                    description: How many time series
                                                      to allow to pass through the
                                                      filter.
                                                    format: int32
                                                    type: integer
                                                  rankingMethod:
                                                    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.'
                                                    type: string
                                                type: object
                                              secondaryAggregation:
                                                description: Apply a second aggregation
                                                  after `aggregation` is applied.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                            required:
                                            - filter
                                            type: object
                                          timeSeriesFilterRatio:
                                            description: Parameters to fetch a ratio
                                              between two time series filters.
                                            properties:
                                              denominator:
                                                description: The denominator of the
                                                  ratio.
                                                properties:
                                                  aggregation:
                                                    description: By default, the raw
                                                      time series data is returned.
                                                    properties:
                                                      alignmentPeriod:
                                                        description: The `alignment_period`
                                                          specifies a time interval,
                                                          in seconds, that is used
                                                          to divide the data in all
                                                          the [time series][google.monitoring.v3.TimeSeries]
                                                          into consistent blocks of
                                                          time. This will be done
                                                          before the per-series aligner
                                                          can be applied to the data.
                                                        type: string
                                                      crossSeriesReducer:
                                                        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.
                                                        type: string
                                                      groupByFields:
                                                        description: The set of fields
                                                          to preserve when `cross_series_reducer`
                                                          is specified.
                                                        items:
                                                          type: string
                                                        type: array
                                                      perSeriesAligner:
                                                        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.
                                                        type: string
                                                    type: object
                                                  filter:
                                                    description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                      that identifies the metric types,
                                                      resources, and projects to query.
                                                    type: string
                                                required:
                                                - filter
                                                type: object
                                              numerator:
                                                description: The numerator of the
                                                  ratio.
                                                properties:
                                                  aggregation:
                                                    description: By default, the raw
                                                      time series data is returned.
                                                    properties:
                                                      alignmentPeriod:
                                                        description: The `alignment_period`
                                                          specifies a time interval,
                                                          in seconds, that is used
                                                          to divide the data in all
                                                          the [time series][google.monitoring.v3.TimeSeries]
                                                          into consistent blocks of
                                                          time. This will be done
                                                          before the per-series aligner
                                                          can be applied to the data.
                                                        type: string
                                                      crossSeriesReducer:
                                                        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.
                                                        type: string
                                                      groupByFields:
                                                        description: The set of fields
                                                          to preserve when `cross_series_reducer`
                                                          is specified.
                                                        items:
                                                          type: string
                                                        type: array
                                                      perSeriesAligner:
                                                        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.
                                                        type: string
                                                    type: object
                                                  filter:
                                                    description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                      that identifies the metric types,
                                                      resources, and projects to query.
                                                    type: string
                                                required:
                                                - filter
                                                type: object
                                              pickTimeSeriesFilter:
                                                description: Ranking based time series
                                                  filter.
                                                properties:
                                                  direction:
                                                    description: How to use the ranking
                                                      to select time series that pass
                                                      through the filter.
                                                    type: string
                                                  numTimeSeries:
                                                    description: How many time series
                                                      to allow to pass through the
                                                      filter.
                                                    format: int32
                                                    type: integer
                                                  rankingMethod:
                                                    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.'
                                                    type: string
                                                type: object
                                              secondaryAggregation:
                                                description: Apply a second aggregation
                                                  after the ratio is computed.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                            type: object
                                          timeSeriesQueryLanguage:
                                            description: A query used to fetch time
                                              series with MQL.
                                            type: string
                                          unitOverride:
                                            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`.
                                            type: string
                                        type: object
                                    type: object
                                  type: array
                                metricVisualization:
                                  description: Optional. Store rendering strategy
                                  type: string
                              required:
                              - dataSets
                              type: object
                            title:
                              description: Optional. The title of the widget.
                              type: string
                            xyChart:
                              description: A chart of time series data.
                              properties:
                                chartOptions:
                                  description: Display options for the chart.
                                  properties:
                                    mode:
                                      description: The chart mode.
                                      type: string
                                  type: object
                                dataSets:
                                  description: Required. The data displayed in this
                                    chart.
                                  items:
                                    properties:
                                      legendTemplate:
                                        description: A template string for naming
                                          `TimeSeries` in the resulting data set.
                                        type: string
                                      minAlignmentPeriod:
                                        description: Optional. The lower bound on
                                          data point frequency for this data set.
                                        type: string
                                      plotType:
                                        description: How this data should be plotted
                                          on the chart.
                                        type: string
                                      targetAxis:
                                        description: Optional. The target axis to
                                          use for plotting the metric.
                                        type: string
                                      timeSeriesQuery:
                                        description: Fields for querying time series
                                          data from the Stackdriver metrics API.
                                        properties:
                                          outputFullDuration:
                                            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.
                                            type: boolean
                                          prometheusQuery:
                                            description: A query used to fetch time
                                              series with PromQL.
                                            type: string
                                          timeSeriesFilter:
                                            description: Filter parameters to fetch
                                              time series.
                                            properties:
                                              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.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: Required. The [monitoring
                                                  filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                              pickTimeSeriesFilter:
                                                description: Ranking based time series
                                                  filter.
                                                properties:
                                                  direction:
                                                    description: How to use the ranking
                                                      to select time series that pass
                                                      through the filter.
                                                    type: string
                                                  numTimeSeries:
                                                    description: How many time series
                                                      to allow to pass through the
                                                      filter.
                                                    format: int32
                                                    type: integer
                                                  rankingMethod:
                                                    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.'
                                                    type: string
                                                type: object
                                              secondaryAggregation:
                                                description: Apply a second aggregation
                                                  after `aggregation` is applied.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                            required:
                                            - filter
                                            type: object
                                          timeSeriesFilterRatio:
                                            description: Parameters to fetch a ratio
                                              between two time series filters.
                                            properties:
                                              denominator:
                                                description: The denominator of the
                                                  ratio.
                                                properties:
                                                  aggregation:
                                                    description: By default, the raw
                                                      time series data is returned.
                                                    properties:
                                                      alignmentPeriod:
                                                        description: The `alignment_period`
                                                          specifies a time interval,
                                                          in seconds, that is used
                                                          to divide the data in all
                                                          the [time series][google.monitoring.v3.TimeSeries]
                                                          into consistent blocks of
                                                          time. This will be done
                                                          before the per-series aligner
                                                          can be applied to the data.
                                                        type: string
                                                      crossSeriesReducer:
                                                        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.
                                                        type: string
                                                      groupByFields:
                                                        description: The set of fields
                                                          to preserve when `cross_series_reducer`
                                                          is specified.
                                                        items:
                                                          type: string
                                                        type: array
                                                      perSeriesAligner:
                                                        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.
                                                        type: string
                                                    type: object
                                                  filter:
                                                    description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                      that identifies the metric types,
                                                      resources, and projects to query.
                                                    type: string
                                                required:
                                                - filter
                                                type: object
                                              numerator:
                                                description: The numerator of the
                                                  ratio.
                                                properties:
                                                  aggregation:
                                                    description: By default, the raw
                                                      time series data is returned.
                                                    properties:
                                                      alignmentPeriod:
                                                        description: The `alignment_period`
                                                          specifies a time interval,
                                                          in seconds, that is used
                                                          to divide the data in all
                                                          the [time series][google.monitoring.v3.TimeSeries]
                                                          into consistent blocks of
                                                          time. This will be done
                                                          before the per-series aligner
                                                          can be applied to the data.
                                                        type: string
                                                      crossSeriesReducer:
                                                        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.
                                                        type: string
                                                      groupByFields:
                                                        description: The set of fields
                                                          to preserve when `cross_series_reducer`
                                                          is specified.
                                                        items:
                                                          type: string
                                                        type: array
                                                      perSeriesAligner:
                                                        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.
                                                        type: string
                                                    type: object
                                                  filter:
                                                    description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                      that identifies the metric types,
                                                      resources, and projects to query.
                                                    type: string
                                                required:
                                                - filter
                                                type: object
                                              pickTimeSeriesFilter:
                                                description: Ranking based time series
                                                  filter.
                                                properties:
                                                  direction:
                                                    description: How to use the ranking
                                                      to select time series that pass
                                                      through the filter.
                                                    type: string
                                                  numTimeSeries:
                                                    description: How many time series
                                                      to allow to pass through the
                                                      filter.
                                                    format: int32
                                                    type: integer
                                                  rankingMethod:
                                                    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.'
                                                    type: string
                                                type: object
                                              secondaryAggregation:
                                                description: Apply a second aggregation
                                                  after the ratio is computed.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                            type: object
                                          timeSeriesQueryLanguage:
                                            description: A query used to fetch time
                                              series with MQL.
                                            type: string
                                          unitOverride:
                                            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`.
                                            type: string
                                        type: object
                                    required:
                                    - timeSeriesQuery
                                    type: object
                                  type: array
                                thresholds:
                                  description: Threshold lines drawn horizontally
                                    across the chart.
                                  items:
                                    properties:
                                      color:
                                        description: The state color for this threshold.
                                          Color is not allowed in a XyChart.
                                        type: string
                                      direction:
                                        description: The direction for the current
                                          threshold. Direction is not allowed in a
                                          XyChart.
                                        type: string
                                      label:
                                        description: A label for the threshold.
                                        type: string
                                      targetAxis:
                                        description: The target axis to use for plotting
                                          the threshold. Target axis is not allowed
                                          in a Scorecard.
                                        type: string
                                      value:
                                        description: The value of the threshold. The
                                          value should be defined in the native scale
                                          of the metric.
                                        format: double
                                        type: number
                                    type: object
                                  type: array
                                timeshiftDuration:
                                  description: The duration used to display a comparison
                                    chart.
                                  type: string
                                xAxis:
                                  description: The properties applied to the x-axis.
                                  properties:
                                    label:
                                      description: The label of the axis.
                                      type: string
                                    scale:
                                      description: The axis scale. By default, a linear
                                        scale is used.
                                      type: string
                                  type: object
                                y2Axis:
                                  description: The properties applied to the y2-axis.
                                  properties:
                                    label:
                                      description: The label of the axis.
                                      type: string
                                    scale:
                                      description: The axis scale. By default, a linear
                                        scale is used.
                                      type: string
                                  type: object
                                yAxis:
                                  description: The properties applied to the y-axis.
                                  properties:
                                    label:
                                      description: The label of the axis.
                                      type: string
                                    scale:
                                      description: The axis scale. By default, a linear
                                        scale is used.
                                      type: string
                                  type: object
                              required:
                              - dataSets
                              type: object
                          type: object
                        width:
                          description: The width of the tile, measured in grid blocks.
                            Tiles must have a minimum width of 1.
                          format: int32
                          type: integer
                        xPos:
                          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.
                          format: int32
                          type: integer
                        yPos:
                          description: The zero-indexed position of the tile in grid
                            blocks relative to the top edge of the grid. `y_pos` cannot
                            be negative.
                          format: int32
                          type: integer
                      type: object
                    type: array
                type: object
              projectRef:
                description: Immutable. The Project that this resource belongs to.
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: The `projectID` field of a project, when not managed
                      by Config Connector.
                    type: string
                  kind:
                    description: The kind of the Project resource; optional but must
                      be `Project` if provided.
                    type: string
                  name:
                    description: The `name` field of a `Project` resource.
                    type: string
                  namespace:
                    description: The `namespace` field of a `Project` resource.
                    type: string
                type: object
              resourceID:
                description: Immutable. Optional. The name of the resource. Used for
                  creation and acquisition.
                type: string
              rowLayout:
                description: The content is divided into equally spaced rows and the
                  widgets are arranged horizontally.
                properties:
                  rows:
                    description: The rows of content to display.
                    items:
                      properties:
                        weight:
                          description: The relative weight of this row. The row weight
                            is used to adjust the height of rows on the screen (relative
                            to peers).
                          format: int64
                          type: integer
                        widgets:
                          description: The display widgets arranged horizontally in
                            this row.
                          items:
                            properties:
                              alertChart:
                                description: A chart of alert policy data.
                                properties:
                                  alertPolicyRef:
                                    description: Required. A reference to the MonitoringAlertPolicy.
                                    oneOf:
                                    - not:
                                        required:
                                        - external
                                      required:
                                      - name
                                    - not:
                                        anyOf:
                                        - required:
                                          - name
                                        - required:
                                          - namespace
                                      required:
                                      - external
                                    properties:
                                      external:
                                        description: The MonitoringAlertPolicy link
                                          in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                          when not managed by Config Connector.
                                        type: string
                                      name:
                                        description: The `name` field of a `MonitoringAlertPolicy`
                                          resource.
                                        type: string
                                      namespace:
                                        description: The `namespace` field of a `MonitoringAlertPolicy`
                                          resource.
                                        type: string
                                    type: object
                                required:
                                - alertPolicyRef
                                type: object
                              blank:
                                description: A blank space.
                                type: object
                              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.
                                properties:
                                  collapsed:
                                    description: The collapsed state of the widget
                                      on first page load.
                                    type: boolean
                                type: object
                              errorReportingPanel:
                                description: A widget that displays a list of error
                                  groups.
                                properties:
                                  projectRefs:
                                    description: The projects from which to gather
                                      errors.
                                    items:
                                      description: The Project that this resource
                                        belongs to.
                                      oneOf:
                                      - not:
                                          required:
                                          - external
                                        required:
                                        - name
                                        - kind
                                      - not:
                                          anyOf:
                                          - required:
                                            - name
                                          - required:
                                            - namespace
                                          - required:
                                            - kind
                                        required:
                                        - external
                                      properties:
                                        external:
                                          description: The `projectID` field of a
                                            project, when not managed by Config Connector.
                                          type: string
                                        kind:
                                          description: The kind of the Project resource;
                                            optional but must be `Project` if provided.
                                          type: string
                                        name:
                                          description: The `name` field of a `Project`
                                            resource.
                                          type: string
                                        namespace:
                                          description: The `namespace` field of a
                                            `Project` resource.
                                          type: string
                                      type: object
                                    type: array
                                  services:
                                    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.
                                    items:
                                      type: string
                                    type: array
                                  versions:
                                    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.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              id:
                                description: Optional. The widget id. Ids may be made
                                  up of alphanumerics, dashes and underscores. Widget
                                  ids are optional.
                                type: string
                              incidentList:
                                description: A widget that shows list of incidents.
                                properties:
                                  monitoredResources:
                                    description: Optional. The monitored resource
                                      for which incidents are listed.
                                    items:
                                      properties:
                                        labels:
                                          additionalProperties:
                                            type: string
                                          description: Required. Values for all of
                                            the labels listed in the associated monitored
                                            resource descriptor.
                                          type: object
                                        type:
                                          description: Required. The monitored resource
                                            type. This field must match the `type`
                                            field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
                                            object.
                                          type: string
                                      type: object
                                    type: array
                                  policyRefs:
                                    description: Optional. A list of alert policies
                                      to filter the incident list by.
                                    items:
                                      oneOf:
                                      - not:
                                          required:
                                          - external
                                        required:
                                        - name
                                      - not:
                                          anyOf:
                                          - required:
                                            - name
                                          - required:
                                            - namespace
                                        required:
                                        - external
                                      properties:
                                        external:
                                          description: The MonitoringAlertPolicy link
                                            in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]",
                                            when not managed by Config Connector.
                                          type: string
                                        name:
                                          description: The `name` field of a `MonitoringAlertPolicy`
                                            resource.
                                          type: string
                                        namespace:
                                          description: The `namespace` field of a
                                            `MonitoringAlertPolicy` resource.
                                          type: string
                                      type: object
                                    type: array
                                type: object
                              logsPanel:
                                description: A widget that shows a stream of logs.
                                properties:
                                  filter:
                                    description: A filter that chooses which log entries
                                      to return.  See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries).
                                    type: string
                                  resourceNames:
                                    description: The names of logging resources to
                                      collect logs for.
                                    items:
                                      oneOf:
                                      - not:
                                          required:
                                          - external
                                        required:
                                        - name
                                        - kind
                                      - not:
                                          anyOf:
                                          - required:
                                            - name
                                          - required:
                                            - namespace
                                          - required:
                                            - kind
                                        required:
                                        - external
                                      properties:
                                        external:
                                          description: The external name of the referenced
                                            resource
                                          type: string
                                        kind:
                                          description: Kind of the referent.
                                          type: string
                                        name:
                                          description: 'Name of the referent. More
                                            info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        namespace:
                                          description: 'Namespace of the referent.
                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                                          type: string
                                      type: object
                                    type: array
                                type: object
                              pieChart:
                                description: A widget that displays timeseries data
                                  as a pie chart.
                                properties:
                                  chartType:
                                    description: Required. Indicates the visualization
                                      type for the PieChart.
                                    type: string
                                  dataSets:
                                    description: Required. The queries for the chart's
                                      data.
                                    items:
                                      properties:
                                        minAlignmentPeriod:
                                          description: Optional. The lower bound on
                                            data point frequency for this data set.
                                          type: string
                                        sliceNameTemplate:
                                          description: Optional. A template for the
                                            name of the slice.
                                          type: string
                                        timeSeriesQuery:
                                          description: Required. The query for the
                                            PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`.
                                          properties:
                                            outputFullDuration:
                                              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.
                                              type: boolean
                                            prometheusQuery:
                                              description: A query used to fetch time
                                                series with PromQL.
                                              type: string
                                            timeSeriesFilter:
                                              description: Filter parameters to fetch
                                                time series.
                                              properties:
                                                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.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                                filter:
                                                  description: Required. The [monitoring
                                                    filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                    that identifies the metric types,
                                                    resources, and projects to query.
                                                  type: string
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after `aggregation` is applied.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              required:
                                              - filter
                                              type: object
                                            timeSeriesFilterRatio:
                                              description: Parameters to fetch a ratio
                                                between two time series filters.
                                              properties:
                                                denominator:
                                                  description: The denominator of
                                                    the ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                numerator:
                                                  description: The numerator of the
                                                    ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after the ratio is computed.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              type: object
                                            timeSeriesQueryLanguage:
                                              description: A query used to fetch time
                                                series with MQL.
                                              type: string
                                            unitOverride:
                                              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`.
                                              type: string
                                          type: object
                                      required:
                                      - timeSeriesQuery
                                      type: object
                                    type: array
                                  showLabels:
                                    description: Optional. Indicates whether or not
                                      the pie chart should show slices' labels
                                    type: boolean
                                required:
                                - chartType
                                - dataSets
                                type: object
                              scorecard:
                                description: A scorecard summarizing time series data.
                                properties:
                                  blankView:
                                    description: Will cause the `Scorecard` to show
                                      only the value, with no indicator to its value
                                      relative to its thresholds.
                                    type: object
                                  gaugeView:
                                    description: Will cause the scorecard to show
                                      a gauge chart.
                                    properties:
                                      lowerBound:
                                        description: The lower bound for this gauge
                                          chart. The value of the chart should always
                                          be greater than or equal to this.
                                        format: double
                                        type: number
                                      upperBound:
                                        description: The upper bound for this gauge
                                          chart. The value of the chart should always
                                          be less than or equal to this.
                                        format: double
                                        type: number
                                    type: object
                                  sparkChartView:
                                    description: Will cause the scorecard to show
                                      a spark chart.
                                    properties:
                                      minAlignmentPeriod:
                                        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.
                                        type: string
                                      sparkChartType:
                                        description: Required. The type of sparkchart
                                          to show in this chartView.
                                        type: string
                                    required:
                                    - sparkChartType
                                    type: object
                                  thresholds:
                                    description: The thresholds used to determine
                                      the state of the scorecard given the time series'
                                      current value.
                                    items:
                                      properties:
                                        color:
                                          description: The state color for this threshold.
                                            Color is not allowed in a XyChart.
                                          type: string
                                        direction:
                                          description: The direction for the current
                                            threshold. Direction is not allowed in
                                            a XyChart.
                                          type: string
                                        label:
                                          description: A label for the threshold.
                                          type: string
                                        targetAxis:
                                          description: The target axis to use for
                                            plotting the threshold. Target axis is
                                            not allowed in a Scorecard.
                                          type: string
                                        value:
                                          description: The value of the threshold.
                                            The value should be defined in the native
                                            scale of the metric.
                                          format: double
                                          type: number
                                      type: object
                                    type: array
                                  timeSeriesQuery:
                                    description: Required. Fields for querying time
                                      series data from the Stackdriver metrics API.
                                    properties:
                                      outputFullDuration:
                                        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.
                                        type: boolean
                                      prometheusQuery:
                                        description: A query used to fetch time series
                                          with PromQL.
                                        type: string
                                      timeSeriesFilter:
                                        description: Filter parameters to fetch time
                                          series.
                                        properties:
                                          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.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                          filter:
                                            description: Required. The [monitoring
                                              filter](https://cloud.google.com/monitoring/api/v3/filters)
                                              that identifies the metric types, resources,
                                              and projects to query.
                                            type: string
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after `aggregation` is applied.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        required:
                                        - filter
                                        type: object
                                      timeSeriesFilterRatio:
                                        description: Parameters to fetch a ratio between
                                          two time series filters.
                                        properties:
                                          denominator:
                                            description: The denominator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          numerator:
                                            description: The numerator of the ratio.
                                            properties:
                                              aggregation:
                                                description: By default, the raw time
                                                  series data is returned.
                                                properties:
                                                  alignmentPeriod:
                                                    description: The `alignment_period`
                                                      specifies a time interval, in
                                                      seconds, that is used to divide
                                                      the data in all the [time series][google.monitoring.v3.TimeSeries]
                                                      into consistent blocks of time.
                                                      This will be done before the
                                                      per-series aligner can be applied
                                                      to the data.
                                                    type: string
                                                  crossSeriesReducer:
                                                    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.
                                                    type: string
                                                  groupByFields:
                                                    description: The set of fields
                                                      to preserve when `cross_series_reducer`
                                                      is specified.
                                                    items:
                                                      type: string
                                                    type: array
                                                  perSeriesAligner:
                                                    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.
                                                    type: string
                                                type: object
                                              filter:
                                                description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                  that identifies the metric types,
                                                  resources, and projects to query.
                                                type: string
                                            required:
                                            - filter
                                            type: object
                                          pickTimeSeriesFilter:
                                            description: Ranking based time series
                                              filter.
                                            properties:
                                              direction:
                                                description: How to use the ranking
                                                  to select time series that pass
                                                  through the filter.
                                                type: string
                                              numTimeSeries:
                                                description: How many time series
                                                  to allow to pass through the filter.
                                                format: int32
                                                type: integer
                                              rankingMethod:
                                                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.'
                                                type: string
                                            type: object
                                          secondaryAggregation:
                                            description: Apply a second aggregation
                                              after the ratio is computed.
                                            properties:
                                              alignmentPeriod:
                                                description: The `alignment_period`
                                                  specifies a time interval, in seconds,
                                                  that is used to divide the data
                                                  in all the [time series][google.monitoring.v3.TimeSeries]
                                                  into consistent blocks of time.
                                                  This will be done before the per-series
                                                  aligner can be applied to the data.
                                                type: string
                                              crossSeriesReducer:
                                                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.
                                                type: string
                                              groupByFields:
                                                description: The set of fields to
                                                  preserve when `cross_series_reducer`
                                                  is specified.
                                                items:
                                                  type: string
                                                type: array
                                              perSeriesAligner:
                                                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.
                                                type: string
                                            type: object
                                        type: object
                                      timeSeriesQueryLanguage:
                                        description: A query used to fetch time series
                                          with MQL.
                                        type: string
                                      unitOverride:
                                        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`.
                                        type: string
                                    type: object
                                required:
                                - timeSeriesQuery
                                type: object
                              sectionHeader:
                                description: A widget that defines a section header
                                  for easier navigation of the dashboard.
                                properties:
                                  dividerBelow:
                                    description: Whether to insert a divider below
                                      the section in the table of contents
                                    type: boolean
                                  subtitle:
                                    description: The subtitle of the section
                                    type: string
                                type: object
                              singleViewGroup:
                                description: A widget that groups the other widgets
                                  by using a dropdown menu.
                                type: object
                              text:
                                description: A raw string or markdown displaying textual
                                  content.
                                properties:
                                  content:
                                    description: The text content to be displayed.
                                    type: string
                                  format:
                                    description: How the text content is formatted.
                                    type: string
                                  style:
                                    description: How the text is styled
                                    properties:
                                      backgroundColor:
                                        description: The background color as a hex
                                          string. "#RRGGBB" or "#RGB"
                                        type: string
                                      fontSize:
                                        description: Font sizes for both the title
                                          and content. The title will still be larger
                                          relative to the content.
                                        type: string
                                      horizontalAlignment:
                                        description: The horizontal alignment of both
                                          the title and content
                                        type: string
                                      padding:
                                        description: The amount of padding around
                                          the widget
                                        type: string
                                      pointerLocation:
                                        description: The pointer location for this
                                          widget (also sometimes called a "tail")
                                        type: string
                                      textColor:
                                        description: The text color as a hex string.
                                          "#RRGGBB" or "#RGB"
                                        type: string
                                      verticalAlignment:
                                        description: The vertical alignment of both
                                          the title and content
                                        type: string
                                    type: object
                                type: object
                              timeSeriesTable:
                                description: A widget that displays time series data
                                  in a tabular format.
                                properties:
                                  columnSettings:
                                    description: Optional. The list of the persistent
                                      column settings for the table.
                                    items:
                                      properties:
                                        column:
                                          description: Required. The id of the column.
                                          type: string
                                        visible:
                                          description: Required. Whether the column
                                            should be visible on page load.
                                          type: boolean
                                      required:
                                      - column
                                      - visible
                                      type: object
                                    type: array
                                  dataSets:
                                    description: Required. The data displayed in this
                                      table.
                                    items:
                                      properties:
                                        minAlignmentPeriod:
                                          description: Optional. The lower bound on
                                            data point frequency for this data set.
                                          type: string
                                        tableDisplayOptions:
                                          description: Optional. Table display options
                                            for configuring how the table is rendered.
                                          properties:
                                            shownColumns:
                                              description: Optional. This field is
                                                unused and has been replaced by TimeSeriesTable.column_settings
                                              items:
                                                type: string
                                              type: array
                                          type: object
                                        tableTemplate:
                                          description: Optional. A template string
                                            for naming `TimeSeries` in the resulting
                                            data set.
                                          type: string
                                        timeSeriesQuery:
                                          description: Required. Fields for querying
                                            time series data from the Stackdriver
                                            metrics API.
                                          properties:
                                            outputFullDuration:
                                              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.
                                              type: boolean
                                            prometheusQuery:
                                              description: A query used to fetch time
                                                series with PromQL.
                                              type: string
                                            timeSeriesFilter:
                                              description: Filter parameters to fetch
                                                time series.
                                              properties:
                                                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.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                                filter:
                                                  description: Required. The [monitoring
                                                    filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                    that identifies the metric types,
                                                    resources, and projects to query.
                                                  type: string
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after `aggregation` is applied.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              required:
                                              - filter
                                              type: object
                                            timeSeriesFilterRatio:
                                              description: Parameters to fetch a ratio
                                                between two time series filters.
                                              properties:
                                                denominator:
                                                  description: The denominator of
                                                    the ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                numerator:
                                                  description: The numerator of the
                                                    ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after the ratio is computed.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              type: object
                                            timeSeriesQueryLanguage:
                                              description: A query used to fetch time
                                                series with MQL.
                                              type: string
                                            unitOverride:
                                              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`.
                                              type: string
                                          type: object
                                      type: object
                                    type: array
                                  metricVisualization:
                                    description: Optional. Store rendering strategy
                                    type: string
                                required:
                                - dataSets
                                type: object
                              title:
                                description: Optional. The title of the widget.
                                type: string
                              xyChart:
                                description: A chart of time series data.
                                properties:
                                  chartOptions:
                                    description: Display options for the chart.
                                    properties:
                                      mode:
                                        description: The chart mode.
                                        type: string
                                    type: object
                                  dataSets:
                                    description: Required. The data displayed in this
                                      chart.
                                    items:
                                      properties:
                                        legendTemplate:
                                          description: A template string for naming
                                            `TimeSeries` in the resulting data set.
                                          type: string
                                        minAlignmentPeriod:
                                          description: Optional. The lower bound on
                                            data point frequency for this data set.
                                          type: string
                                        plotType:
                                          description: How this data should be plotted
                                            on the chart.
                                          type: string
                                        targetAxis:
                                          description: Optional. The target axis to
                                            use for plotting the metric.
                                          type: string
                                        timeSeriesQuery:
                                          description: Fields for querying time series
                                            data from the Stackdriver metrics API.
                                          properties:
                                            outputFullDuration:
                                              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.
                                              type: boolean
                                            prometheusQuery:
                                              description: A query used to fetch time
                                                series with PromQL.
                                              type: string
                                            timeSeriesFilter:
                                              description: Filter parameters to fetch
                                                time series.
                                              properties:
                                                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.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                                filter:
                                                  description: Required. The [monitoring
                                                    filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                    that identifies the metric types,
                                                    resources, and projects to query.
                                                  type: string
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after `aggregation` is applied.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              required:
                                              - filter
                                              type: object
                                            timeSeriesFilterRatio:
                                              description: Parameters to fetch a ratio
                                                between two time series filters.
                                              properties:
                                                denominator:
                                                  description: The denominator of
                                                    the ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                numerator:
                                                  description: The numerator of the
                                                    ratio.
                                                  properties:
                                                    aggregation:
                                                      description: By default, the
                                                        raw time series data is returned.
                                                      properties:
                                                        alignmentPeriod:
                                                          description: The `alignment_period`
                                                            specifies a time interval,
                                                            in seconds, that is used
                                                            to divide the data in
                                                            all the [time series][google.monitoring.v3.TimeSeries]
                                                            into consistent blocks
                                                            of time. This will be
                                                            done before the per-series
                                                            aligner can be applied
                                                            to the data.
                                                          type: string
                                                        crossSeriesReducer:
                                                          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.
                                                          type: string
                                                        groupByFields:
                                                          description: The set of
                                                            fields to preserve when
                                                            `cross_series_reducer`
                                                            is specified.
                                                          items:
                                                            type: string
                                                          type: array
                                                        perSeriesAligner:
                                                          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.
                                                          type: string
                                                      type: object
                                                    filter:
                                                      description: The [monitoring
                                                        filter](https://cloud.google.com/monitoring/api/v3/filters)
                                                        that identifies the metric
                                                        types, resources, and projects
                                                        to query.
                                                      type: string
                                                  required:
                                                  - filter
                                                  type: object
                                                pickTimeSeriesFilter:
                                                  description: Ranking based time
                                                    series filter.
                                                  properties:
                                                    direction:
                                                      description: How to use the
                                                        ranking to select time series
                                                        that pass through the filter.
                                                      type: string
                                                    numTimeSeries:
                                                      description: How many time series
                                                        to allow to pass through the
                                                        filter.
                                                      format: int32
                                                      type: integer
                                                    rankingMethod:
                                                      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.'
                                                      type: string
                                                  type: object
                                                secondaryAggregation:
                                                  description: Apply a second aggregation
                                                    after the ratio is computed.
                                                  properties:
                                                    alignmentPeriod:
                                                      description: The `alignment_period`
                                                        specifies a time interval,
                                                        in seconds, that is used to
                                                        divide the data in all the
                                                        [time series][google.monitoring.v3.TimeSeries]
                                                        into consistent blocks of
                                                        time. This will be done before
                                                        the per-series aligner can
                                                        be applied to the data.
                                                      type: string
                                                    crossSeriesReducer:
                                                      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.
                                                      type: string
                                                    groupByFields:
                                                      description: The set of fields
                                                        to preserve when `cross_series_reducer`
                                                        is specified.
                                                      items:
                                                        type: string
                                                      type: array
                                                    perSeriesAligner:
                                                      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.
                                                      type: string
                                                  type: object
                                              type: object
                                            timeSeriesQueryLanguage:
                                              description: A query used to fetch time
                                                series with MQL.
                                              type: string
                                            unitOverride:
                                              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`.
                                              type: string
                                          type: object
                                      required:
                                      - timeSeriesQuery
                                      type: object
                                    type: array
                                  thresholds:
                                    description: Threshold lines drawn horizontally
                                      across the chart.
                                    items:
                                      properties:
                                        color:
                                          description: The state color for this threshold.
                                            Color is not allowed in a XyChart.
                                          type: string
                                        direction:
                                          description: The direction for the current
                                            threshold. Direction is not allowed in
                                            a XyChart.
                                          type: string
                                        label:
                                          description: A label for the threshold.
                                          type: string
                                        targetAxis:
                                          description: The target axis to use for
                                            plotting the threshold. Target axis is
                                            not allowed in a Scorecard.
                                          type: string
                                        value:
                                          description: The value of the threshold.
                                            The value should be defined in the native
                                            scale of the metric.
                                          format: double
                                          type: number
                                      type: object
                                    type: array
                                  timeshiftDuration:
                                    description: The duration used to display a comparison
                                      chart.
                                    type: string
                                  xAxis:
                                    description: The properties applied to the x-axis.
                                    properties:
                                      label:
                                        description: The label of the axis.
                                        type: string
                                      scale:
                                        description: The axis scale. By default, a
                                          linear scale is used.
                                        type: string
                                    type: object
                                  y2Axis:
                                    description: The properties applied to the y2-axis.
                                    properties:
                                      label:
                                        description: The label of the axis.
                                        type: string
                                      scale:
                                        description: The axis scale. By default, a
                                          linear scale is used.
                                        type: string
                                    type: object
                                  yAxis:
                                    description: The properties applied to the y-axis.
                                    properties:
                                      label:
                                        description: The label of the axis.
                                        type: string
                                      scale:
                                        description: The axis scale. By default, a
                                          linear scale is used.
                                        type: string
                                    type: object
                                required:
                                - dataSets
                                type: object
                            type: object
                          type: array
                      type: object
                    type: array
                type: object
            required:
            - displayName
            - projectRef
            type: object
          status:
            properties:
              conditions:
                description: Conditions represent the latest available observations
                  of the MonitoringDashboard's current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      type: string
                    message:
                      description: Human-readable message indicating details about
                        last transition.
                      type: string
                    reason:
                      description: Unique, one-word, CamelCase reason for the condition's
                        last transition.
                      type: string
                    status:
                      description: Status is the status of the condition. Can be True,
                        False, Unknown.
                      type: string
                    type:
                      description: Type is the type of the condition.
                      type: string
                  type: object
                type: array
              etag:
                description: \`etag\` is used for optimistic concurrency control as
                  a way to help prevent simultaneous updates of a policy from overwriting
                  each other.
                type: string
              observedGeneration:
                description: ObservedGeneration is the generation of the resource
                  that was most recently observed by the Config Connector controller.
                  If this is equal to metadata.generation, then that means that the
                  current reported status reflects the most recent desired state of
                  the resource.
                format: int64
                type: integer
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
