From fbf7edad047ba67527e3e1b3576b30a170ef6a9b Mon Sep 17 00:00:00 2001 From: ksaw Date: Mon, 16 Sep 2024 18:26:40 +0900 Subject: [PATCH] Update ConfigConnector CRDs to v1.121.0 (#380) --- .../alloydbcluster_v1alpha1.json | 119 + .../alloydbcluster_v1beta1.json | 119 + .../alloydbinstance_v1alpha1.json | 96 +- .../alloydbinstance_v1beta1.json | 96 +- .../bigquerydataset_v1beta1.json | 4 + .../computeaddress_v1beta1.json | 11 + .../computedisk_v1beta1.json | 2 +- .../computeforwardingrule_v1beta1.json | 58 +- .../computeinstance_v1beta1.json | 2 +- .../computeinstancetemplate_v1beta1.json | 2 +- .../computenetwork_v1beta1.json | 2 +- .../computetargethttpsproxy_v1beta1.json | 57 +- .../containercluster_v1beta1.json | 44 +- .../containernodepool_v1beta1.json | 17 +- .../dnsrecordset_v1beta1.json | 1206 +++ .../eventarctrigger_v1beta1.json | 73 + .../gkehubfeaturemembership_v1beta1.json | 161 +- .../logginglogbucket_v1beta1.json | 4 + .../logginglogmetric_v1beta1.json | 79 +- .../monitoringalertpolicy_v1beta1.json | 4 + .../monitoringdashboard_v1beta1.json | 7005 +++++++++++++---- .../recaptchaenterprisekey_v1beta1.json | 19 + .../redisinstance_v1beta1.json | 11 + run.cnrm.cloud.google.com/runjob_v1beta1.json | 50 + .../secretmanagersecret_v1beta1.json | 2 +- .../sqlinstance_v1beta1.json | 4 + .../storagebucket_v1beta1.json | 33 + 27 files changed, 7647 insertions(+), 1633 deletions(-) diff --git a/alloydb.cnrm.cloud.google.com/alloydbcluster_v1alpha1.json b/alloydb.cnrm.cloud.google.com/alloydbcluster_v1alpha1.json index be621d38..6b407685 100644 --- a/alloydb.cnrm.cloud.google.com/alloydbcluster_v1alpha1.json +++ b/alloydb.cnrm.cloud.google.com/alloydbcluster_v1alpha1.json @@ -161,6 +161,10 @@ "type": "object", "additionalProperties": false }, + "clusterType": { + "description": "The type of cluster. If not set, defaults to PRIMARY. Default value: \"PRIMARY\" Possible values: [\"PRIMARY\", \"SECONDARY\"].", + "type": "string" + }, "continuousBackupConfig": { "description": "The continuous backup config for this cluster.\n\nIf no policy is provided then the default policy will be used. The default policy takes one backup a day and retains backups for 14 days.", "properties": { @@ -233,6 +237,10 @@ "type": "object", "additionalProperties": false }, + "deletionPolicy": { + "description": "Policy to determine if the cluster should be deleted forcefully.\nDeleting a cluster forcefully, deletes the cluster and all its associated instances within the cluster.\nDeleting a Secondary cluster with a secondary instance REQUIRES setting deletion_policy = \"FORCE\" otherwise an error is returned. This is needed as there is no support to delete just the secondary instance, and the only way to delete secondary instance is to delete the associated secondary cluster forcefully which also deletes the secondary instance.", + "type": "string" + }, "displayName": { "description": "User-settable and human-readable display name for the Cluster.", "type": "string" @@ -371,6 +379,57 @@ "description": "Immutable. The location where the alloydb cluster should reside.", "type": "string" }, + "maintenanceUpdatePolicy": { + "description": "MaintenanceUpdatePolicy defines the policy for system updates.", + "properties": { + "maintenanceWindows": { + "description": "Preferred windows to perform maintenance. Currently limited to 1.", + "items": { + "properties": { + "day": { + "description": "Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"].", + "type": "string" + }, + "startTime": { + "description": "Preferred time to start the maintenance operation on the specified day. Maintenance will start within 1 hour of this time.", + "properties": { + "hours": { + "description": "Hours of day in 24 hour format. Should be from 0 to 23.", + "type": "integer" + }, + "minutes": { + "description": "Minutes of hour of day. Currently, only the value 0 is supported.", + "type": "integer" + }, + "nanos": { + "description": "Fractions of seconds in nanoseconds. Currently, only the value 0 is supported.", + "type": "integer" + }, + "seconds": { + "description": "Seconds of minutes of the time. Currently, only the value 0 is supported.", + "type": "integer" + } + }, + "required": [ + "hours" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "day", + "startTime" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, "networkConfig": { "description": "Metadata related to network configuration.", "properties": { @@ -660,6 +719,66 @@ ], "type": "object", "additionalProperties": false + }, + "secondaryConfig": { + "description": "Configuration of the secondary cluster for Cross Region Replication. This should be set if and only if the cluster is of type SECONDARY.", + "properties": { + "primaryClusterNameRef": { + "description": "Name of the primary cluster must be in the format\n'projects/{project}/locations/{location}/clusters/{cluster_id}'", + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `name` field of an `AlloyDBCluster` resource.", + "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", + "additionalProperties": false + } + }, + "required": [ + "primaryClusterNameRef" + ], + "type": "object", + "additionalProperties": false } }, "required": [ diff --git a/alloydb.cnrm.cloud.google.com/alloydbcluster_v1beta1.json b/alloydb.cnrm.cloud.google.com/alloydbcluster_v1beta1.json index be621d38..6b407685 100644 --- a/alloydb.cnrm.cloud.google.com/alloydbcluster_v1beta1.json +++ b/alloydb.cnrm.cloud.google.com/alloydbcluster_v1beta1.json @@ -161,6 +161,10 @@ "type": "object", "additionalProperties": false }, + "clusterType": { + "description": "The type of cluster. If not set, defaults to PRIMARY. Default value: \"PRIMARY\" Possible values: [\"PRIMARY\", \"SECONDARY\"].", + "type": "string" + }, "continuousBackupConfig": { "description": "The continuous backup config for this cluster.\n\nIf no policy is provided then the default policy will be used. The default policy takes one backup a day and retains backups for 14 days.", "properties": { @@ -233,6 +237,10 @@ "type": "object", "additionalProperties": false }, + "deletionPolicy": { + "description": "Policy to determine if the cluster should be deleted forcefully.\nDeleting a cluster forcefully, deletes the cluster and all its associated instances within the cluster.\nDeleting a Secondary cluster with a secondary instance REQUIRES setting deletion_policy = \"FORCE\" otherwise an error is returned. This is needed as there is no support to delete just the secondary instance, and the only way to delete secondary instance is to delete the associated secondary cluster forcefully which also deletes the secondary instance.", + "type": "string" + }, "displayName": { "description": "User-settable and human-readable display name for the Cluster.", "type": "string" @@ -371,6 +379,57 @@ "description": "Immutable. The location where the alloydb cluster should reside.", "type": "string" }, + "maintenanceUpdatePolicy": { + "description": "MaintenanceUpdatePolicy defines the policy for system updates.", + "properties": { + "maintenanceWindows": { + "description": "Preferred windows to perform maintenance. Currently limited to 1.", + "items": { + "properties": { + "day": { + "description": "Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"].", + "type": "string" + }, + "startTime": { + "description": "Preferred time to start the maintenance operation on the specified day. Maintenance will start within 1 hour of this time.", + "properties": { + "hours": { + "description": "Hours of day in 24 hour format. Should be from 0 to 23.", + "type": "integer" + }, + "minutes": { + "description": "Minutes of hour of day. Currently, only the value 0 is supported.", + "type": "integer" + }, + "nanos": { + "description": "Fractions of seconds in nanoseconds. Currently, only the value 0 is supported.", + "type": "integer" + }, + "seconds": { + "description": "Seconds of minutes of the time. Currently, only the value 0 is supported.", + "type": "integer" + } + }, + "required": [ + "hours" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "day", + "startTime" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, "networkConfig": { "description": "Metadata related to network configuration.", "properties": { @@ -660,6 +719,66 @@ ], "type": "object", "additionalProperties": false + }, + "secondaryConfig": { + "description": "Configuration of the secondary cluster for Cross Region Replication. This should be set if and only if the cluster is of type SECONDARY.", + "properties": { + "primaryClusterNameRef": { + "description": "Name of the primary cluster must be in the format\n'projects/{project}/locations/{location}/clusters/{cluster_id}'", + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `name` field of an `AlloyDBCluster` resource.", + "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", + "additionalProperties": false + } + }, + "required": [ + "primaryClusterNameRef" + ], + "type": "object", + "additionalProperties": false } }, "required": [ diff --git a/alloydb.cnrm.cloud.google.com/alloydbinstance_v1alpha1.json b/alloydb.cnrm.cloud.google.com/alloydbinstance_v1alpha1.json index 8e6c63b1..18764452 100644 --- a/alloydb.cnrm.cloud.google.com/alloydbinstance_v1alpha1.json +++ b/alloydb.cnrm.cloud.google.com/alloydbinstance_v1alpha1.json @@ -12,6 +12,18 @@ "type": "object" }, "spec": { + "oneOf": [ + { + "required": [ + "instanceType" + ] + }, + { + "required": [ + "instanceTypeRef" + ] + } + ], "properties": { "annotations": { "additionalProperties": { @@ -89,9 +101,59 @@ "type": "string" }, "instanceType": { - "description": "Immutable. The type of the instance. If the instance type is READ_POOL, provide the associated PRIMARY instance in the 'depends_on' meta-data attribute. Possible values: [\"PRIMARY\", \"READ_POOL\"].", + "description": "We recommend that you use `instanceTypeRef` instead.\nThe type of the instance. Possible values: [PRIMARY, READ_POOL, SECONDARY]", "type": "string" }, + "instanceTypeRef": { + "description": "The type of instance.\nPossible values: [\"PRIMARY\", \"READ_POOL\", \"SECONDARY\"]\nFor PRIMARY and SECONDARY instances, set the value to refer to the name of the associated cluster.\nThis is recommended because the instance type of primary and secondary instances is tied to the cluster type of the associated cluster.\nIf the secondary cluster is promoted to primary cluster, then the associated secondary instance also becomes primary instance.\nExample:\ninstanceTypeRef:\n name: clusterName\nFor instances of type READ_POOL, set the value using external keyword.\nExample:\ninstanceTypeRef:\n external: READ_POOL\nIf the instance type is SECONDARY, the delete instance operation does not delete the secondary instance but abandons it instead.\nUse deletionPolicy = \"FORCE\" in the associated secondary cluster and delete the cluster forcefully to delete the secondary cluster as well its associated secondary instance.", + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `clusterType` field of an `AlloyDBCluster` resource.", + "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", + "additionalProperties": false + }, "machineConfig": { "description": "Configurations for the machines that host the underlying database engine.", "properties": { @@ -103,6 +165,31 @@ "type": "object", "additionalProperties": false }, + "networkConfig": { + "description": "Instance level network configuration.", + "properties": { + "authorizedExternalNetworks": { + "description": "A list of external networks authorized to access this instance. This field is only allowed to be set when 'enable_public_ip' is set to true.", + "items": { + "properties": { + "cidrRange": { + "description": "CIDR range for one authorized network of the instance.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "enablePublicIp": { + "description": "Enabling public ip for the instance. If a user wishes to disable this, please also clear the list of the authorized external networks set on the same instance.", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, "readPoolConfig": { "description": "Read pool specific config. If the instance type is READ_POOL, this configuration must be provided.", "properties": { @@ -120,8 +207,7 @@ } }, "required": [ - "clusterRef", - "instanceType" + "clusterRef" ], "type": "object", "additionalProperties": false @@ -174,6 +260,10 @@ "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.", "type": "integer" }, + "publicIpAddress": { + "description": "The public IP addresses for the Instance. This is available ONLY when networkConfig.enablePublicIp is set to true. This is the connection endpoint for an end-user application.", + "type": "string" + }, "reconciling": { "description": "Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating the resource to reconcile them. This can happen due to user-triggered updates or system actions like failover or maintenance.", "type": "boolean" diff --git a/alloydb.cnrm.cloud.google.com/alloydbinstance_v1beta1.json b/alloydb.cnrm.cloud.google.com/alloydbinstance_v1beta1.json index 8e6c63b1..18764452 100644 --- a/alloydb.cnrm.cloud.google.com/alloydbinstance_v1beta1.json +++ b/alloydb.cnrm.cloud.google.com/alloydbinstance_v1beta1.json @@ -12,6 +12,18 @@ "type": "object" }, "spec": { + "oneOf": [ + { + "required": [ + "instanceType" + ] + }, + { + "required": [ + "instanceTypeRef" + ] + } + ], "properties": { "annotations": { "additionalProperties": { @@ -89,9 +101,59 @@ "type": "string" }, "instanceType": { - "description": "Immutable. The type of the instance. If the instance type is READ_POOL, provide the associated PRIMARY instance in the 'depends_on' meta-data attribute. Possible values: [\"PRIMARY\", \"READ_POOL\"].", + "description": "We recommend that you use `instanceTypeRef` instead.\nThe type of the instance. Possible values: [PRIMARY, READ_POOL, SECONDARY]", "type": "string" }, + "instanceTypeRef": { + "description": "The type of instance.\nPossible values: [\"PRIMARY\", \"READ_POOL\", \"SECONDARY\"]\nFor PRIMARY and SECONDARY instances, set the value to refer to the name of the associated cluster.\nThis is recommended because the instance type of primary and secondary instances is tied to the cluster type of the associated cluster.\nIf the secondary cluster is promoted to primary cluster, then the associated secondary instance also becomes primary instance.\nExample:\ninstanceTypeRef:\n name: clusterName\nFor instances of type READ_POOL, set the value using external keyword.\nExample:\ninstanceTypeRef:\n external: READ_POOL\nIf the instance type is SECONDARY, the delete instance operation does not delete the secondary instance but abandons it instead.\nUse deletionPolicy = \"FORCE\" in the associated secondary cluster and delete the cluster forcefully to delete the secondary cluster as well its associated secondary instance.", + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `clusterType` field of an `AlloyDBCluster` resource.", + "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", + "additionalProperties": false + }, "machineConfig": { "description": "Configurations for the machines that host the underlying database engine.", "properties": { @@ -103,6 +165,31 @@ "type": "object", "additionalProperties": false }, + "networkConfig": { + "description": "Instance level network configuration.", + "properties": { + "authorizedExternalNetworks": { + "description": "A list of external networks authorized to access this instance. This field is only allowed to be set when 'enable_public_ip' is set to true.", + "items": { + "properties": { + "cidrRange": { + "description": "CIDR range for one authorized network of the instance.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "enablePublicIp": { + "description": "Enabling public ip for the instance. If a user wishes to disable this, please also clear the list of the authorized external networks set on the same instance.", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, "readPoolConfig": { "description": "Read pool specific config. If the instance type is READ_POOL, this configuration must be provided.", "properties": { @@ -120,8 +207,7 @@ } }, "required": [ - "clusterRef", - "instanceType" + "clusterRef" ], "type": "object", "additionalProperties": false @@ -174,6 +260,10 @@ "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.", "type": "integer" }, + "publicIpAddress": { + "description": "The public IP addresses for the Instance. This is available ONLY when networkConfig.enablePublicIp is set to true. This is the connection endpoint for an end-user application.", + "type": "string" + }, "reconciling": { "description": "Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating the resource to reconcile them. This can happen due to user-triggered updates or system actions like failover or maintenance.", "type": "boolean" diff --git a/bigquery.cnrm.cloud.google.com/bigquerydataset_v1beta1.json b/bigquery.cnrm.cloud.google.com/bigquerydataset_v1beta1.json index 04d52b0e..74883336 100644 --- a/bigquery.cnrm.cloud.google.com/bigquerydataset_v1beta1.json +++ b/bigquery.cnrm.cloud.google.com/bigquerydataset_v1beta1.json @@ -62,6 +62,10 @@ "description": "An email address of a Google Group to grant access to.", "type": "string" }, + "iamMember": { + "description": "Some other type of member that appears in the IAM Policy but isn't a user,\ngroup, domain, or special group. For example: 'allUsers'.", + "type": "string" + }, "role": { "description": "Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles\nare supported. Predefined roles that have equivalent basic roles\nare swapped by the API to their basic counterparts. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).", "type": "string" diff --git a/compute.cnrm.cloud.google.com/computeaddress_v1beta1.json b/compute.cnrm.cloud.google.com/computeaddress_v1beta1.json index 8cc1c4a3..ae9c0ba2 100644 --- a/compute.cnrm.cloud.google.com/computeaddress_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computeaddress_v1beta1.json @@ -204,6 +204,17 @@ "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.", "type": "integer" }, + "observedState": { + "description": "The observed state of the underlying GCP resource.", + "properties": { + "address": { + "description": "Immutable. The static external IP address represented by this resource.\nThe IP address must be inside the specified subnetwork,\nif any. Set by the API if undefined.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, "selfLink": { "type": "string" }, diff --git a/compute.cnrm.cloud.google.com/computedisk_v1beta1.json b/compute.cnrm.cloud.google.com/computedisk_v1beta1.json index 8407a95b..0744d9bd 100644 --- a/compute.cnrm.cloud.google.com/computedisk_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computedisk_v1beta1.json @@ -471,7 +471,7 @@ }, "resourcePolicies": { "items": { - "description": "Resource policies applied to this disk for automatic snapshot creations.", + "description": "Resource policies applied to this disk for automatic snapshot creations.\nThis field only applies for zonal compute disk resources.", "oneOf": [ { "not": { diff --git a/compute.cnrm.cloud.google.com/computeforwardingrule_v1beta1.json b/compute.cnrm.cloud.google.com/computeforwardingrule_v1beta1.json index e2c99052..534d6bfe 100644 --- a/compute.cnrm.cloud.google.com/computeforwardingrule_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computeforwardingrule_v1beta1.json @@ -163,7 +163,7 @@ "type": "boolean" }, "loadBalancingScheme": { - "description": "Immutable. Specifies the forwarding rule type.\n\nFor more information about forwarding rules, refer to\n[Forwarding rule concepts](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts). Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"EXTERNAL_MANAGED\", \"INTERNAL\", \"INTERNAL_MANAGED\"].", + "description": "Immutable. Specifies the forwarding rule type.\n\nMust set to empty for private service connect forwarding rule. For more information about forwarding rules, refer to\n[Forwarding rule concepts](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts). Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"EXTERNAL_MANAGED\", \"INTERNAL\", \"INTERNAL_MANAGED\", \"\"].", "type": "string" }, "location": { @@ -347,7 +347,7 @@ ], "properties": { "external": { - "description": "Allowed value: The `name` field of a `ComputeSubnetwork` resource.", + "description": "Allowed value: The `selfLink` field of a `ComputeSubnetwork` resource.", "type": "string" }, "name": { @@ -365,6 +365,11 @@ "target": { "description": "The target resource to receive the matched traffic. The forwarded\ntraffic must be of a type appropriate to the target object. For\nINTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets\nare valid.", "oneOf": [ + { + "required": [ + "serviceAttachmentRef" + ] + }, { "required": [ "targetGRPCProxyRef" @@ -397,6 +402,55 @@ } ], "properties": { + "serviceAttachmentRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `selfLink` field of a `ComputeServiceAttachment` resource.", + "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", + "additionalProperties": false + }, "targetGRPCProxyRef": { "oneOf": [ { diff --git a/compute.cnrm.cloud.google.com/computeinstance_v1beta1.json b/compute.cnrm.cloud.google.com/computeinstance_v1beta1.json index b26e8894..c2d1783d 100644 --- a/compute.cnrm.cloud.google.com/computeinstance_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computeinstance_v1beta1.json @@ -529,7 +529,7 @@ "type": "integer" }, "type": { - "description": "Immutable. The accelerator type resource exposed to this instance. E.g. nvidia-tesla-k80.", + "description": "Immutable. The accelerator type resource exposed to this instance. E.g. nvidia-tesla-t4.", "type": "string" } }, diff --git a/compute.cnrm.cloud.google.com/computeinstancetemplate_v1beta1.json b/compute.cnrm.cloud.google.com/computeinstancetemplate_v1beta1.json index f5e9904f..e90e7ea6 100644 --- a/compute.cnrm.cloud.google.com/computeinstancetemplate_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computeinstancetemplate_v1beta1.json @@ -603,7 +603,7 @@ "type": "integer" }, "type": { - "description": "Immutable. The accelerator type resource to expose to this instance. E.g. nvidia-tesla-k80.", + "description": "Immutable. The accelerator type resource to expose to this instance. E.g. nvidia-tesla-t4.", "type": "string" } }, diff --git a/compute.cnrm.cloud.google.com/computenetwork_v1beta1.json b/compute.cnrm.cloud.google.com/computenetwork_v1beta1.json index 28015e9e..d7c51e0a 100644 --- a/compute.cnrm.cloud.google.com/computenetwork_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computenetwork_v1beta1.json @@ -26,7 +26,7 @@ "type": "string" }, "enableUlaInternalIpv6": { - "description": "Immutable. Enable ULA internal ipv6 on this network. Enabling this feature will assign\na /48 from google defined ULA prefix fd20::/20.", + "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign\na /48 from google defined ULA prefix fd20::/20.", "type": "boolean" }, "internalIpv6Range": { diff --git a/compute.cnrm.cloud.google.com/computetargethttpsproxy_v1beta1.json b/compute.cnrm.cloud.google.com/computetargethttpsproxy_v1beta1.json index 20e82905..6b3c7bd6 100644 --- a/compute.cnrm.cloud.google.com/computetargethttpsproxy_v1beta1.json +++ b/compute.cnrm.cloud.google.com/computetargethttpsproxy_v1beta1.json @@ -13,8 +13,61 @@ }, "spec": { "properties": { + "certificateManagerCertificates": { + "items": { + "description": "URLs to certificate manager certificate resources that are used to authenticate connections between users and the load balancer.\nCurrently, you may specify up to 15 certificates. Certificate manager certificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.\nsslCertificates and certificateManagerCertificates fields can not be defined together.", + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: string of the format `projects/{{project}}/locations/global/certificates/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificate` resource.", + "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", + "additionalProperties": false + }, + "type": "array" + }, "certificateMapRef": { - "description": "A reference to the CertificateMap resource uri that identifies a\ncertificate map associated with the given target proxy. This field\ncan only be set for global target proxies.", + "description": "A reference to the CertificateMap resource uri that identifies a\ncertificate map associated with the given target proxy. This field\ncan only be set for global target proxies. This field is only supported\nfor EXTERNAL and EXTERNAL_MANAGED load balancing schemes.\nFor INTERNAL_MANAGED, use certificateManagerCertificates instead.\nsslCertificates and certificateMap fields can not be defined together.", "oneOf": [ { "not": { @@ -48,7 +101,7 @@ ], "properties": { "external": { - "description": "Allowed value: string of the format `//certificatemanager.googleapis.com/projects/{{project}}/locations/{{location}}/certificateMaps/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificateMap` resource.", + "description": "Allowed value: string of the format `//certificatemanager.googleapis.com/projects/{{project}}/locations/global/certificateMaps/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificateMap` resource.", "type": "string" }, "name": { diff --git a/container.cnrm.cloud.google.com/containercluster_v1beta1.json b/container.cnrm.cloud.google.com/containercluster_v1beta1.json index 2cffa63b..ad221a2a 100644 --- a/container.cnrm.cloud.google.com/containercluster_v1beta1.json +++ b/container.cnrm.cloud.google.com/containercluster_v1beta1.json @@ -1379,6 +1379,10 @@ "linuxNodeConfig": { "description": "Parameters that can be configured on Linux nodes.", "properties": { + "cgroupMode": { + "description": "cgroupMode specifies the cgroup mode to be used on the node.", + "type": "string" + }, "sysctls": { "additionalProperties": { "type": "string" @@ -1387,9 +1391,6 @@ "type": "object" } }, - "required": [ - "sysctls" - ], "type": "object", "additionalProperties": false }, @@ -2202,6 +2203,43 @@ "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.", "type": "integer" }, + "observedState": { + "description": "The observed state of the underlying GCP resource.", + "properties": { + "masterAuth": { + "description": "DEPRECATED. Basic authentication was removed for GKE cluster versions >= 1.19. The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.", + "properties": { + "clientCertificate": { + "description": "Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.", + "type": "string" + }, + "clusterCaCertificate": { + "description": "Base64 encoded public certificate that is the root of trust for the cluster.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "privateClusterConfig": { + "description": "Configuration for private clusters, clusters with private nodes.", + "properties": { + "privateEndpoint": { + "description": "The internal IP address of this cluster's master endpoint.", + "type": "string" + }, + "publicEndpoint": { + "description": "The external IP address of this cluster's master endpoint.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, "operation": { "type": "string" }, diff --git a/container.cnrm.cloud.google.com/containernodepool_v1beta1.json b/container.cnrm.cloud.google.com/containernodepool_v1beta1.json index c3bcb7d8..199b4623 100644 --- a/container.cnrm.cloud.google.com/containernodepool_v1beta1.json +++ b/container.cnrm.cloud.google.com/containernodepool_v1beta1.json @@ -605,6 +605,10 @@ "linuxNodeConfig": { "description": "Parameters that can be configured on Linux nodes.", "properties": { + "cgroupMode": { + "description": "cgroupMode specifies the cgroup mode to be used on the node.", + "type": "string" + }, "sysctls": { "additionalProperties": { "type": "string" @@ -613,9 +617,6 @@ "type": "object" } }, - "required": [ - "sysctls" - ], "type": "object", "additionalProperties": false }, @@ -1120,6 +1121,16 @@ "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.", "type": "integer" }, + "observedState": { + "description": "The observed state of the underlying GCP resource.", + "properties": { + "version": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, "operation": { "type": "string" } diff --git a/dns.cnrm.cloud.google.com/dnsrecordset_v1beta1.json b/dns.cnrm.cloud.google.com/dnsrecordset_v1beta1.json index dbec1600..d38e8f9d 100644 --- a/dns.cnrm.cloud.google.com/dnsrecordset_v1beta1.json +++ b/dns.cnrm.cloud.google.com/dnsrecordset_v1beta1.json @@ -22,6 +22,11 @@ "required": [ "rrdatasRefs" ] + }, + { + "required": [ + "routingPolicy" + ] } ], "properties": { @@ -78,6 +83,1207 @@ "description": "Immutable. The DNS name this record set will apply to.", "type": "string" }, + "routingPolicy": { + "description": "The configuration for steering traffic based on query. You can specify either Weighted Round Robin(WRR) type or Geolocation(GEO) type.", + "properties": { + "enableGeoFencing": { + "description": "Specifies whether to enable fencing for geo queries.", + "type": "boolean" + }, + "geo": { + "description": "The configuration for Geo location based routing policy.", + "items": { + "properties": { + "healthCheckedTargets": { + "description": "For A and AAAA types only. The list of targets to be health checked. These can be specified along with `rrdatas` within this item.", + "properties": { + "internalLoadBalancers": { + "description": "The list of internal load balancers to health check.", + "items": { + "properties": { + "ipAddressRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "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", + "additionalProperties": false + }, + "ipProtocol": { + "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].", + "type": "string" + }, + "loadBalancerType": { + "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].", + "type": "string" + }, + "networkRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.", + "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", + "additionalProperties": false + }, + "port": { + "description": "The configured port of the load balancer.", + "type": "string" + }, + "projectRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `name` field of a `Project` resource.", + "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", + "additionalProperties": false + }, + "regionRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.", + "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", + "additionalProperties": false + } + }, + "required": [ + "ipAddressRef", + "ipProtocol", + "loadBalancerType", + "networkRef", + "port", + "projectRef" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "internalLoadBalancers" + ], + "type": "object", + "additionalProperties": false + }, + "location": { + "description": "The location name defined in Google Cloud.", + "type": "string" + }, + "rrdatasRefs": { + "items": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name", + "kind" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + }, + { + "required": [ + "kind" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent. Allowed values: ComputeAddress", + "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", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "location" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "primaryBackup": { + "description": "The configuration for a primary-backup policy with global to regional failover. Queries are responded to with the global primary targets, but if none of the primary targets are healthy, then we fallback to a regional failover policy.", + "properties": { + "backupGeo": { + "description": "The backup geo targets, which provide a regional failover policy for the otherwise global primary targets.", + "items": { + "properties": { + "healthCheckedTargets": { + "description": "For A and AAAA types only. The list of targets to be health checked. These can be specified along with `rrdatas` within this item.", + "properties": { + "internalLoadBalancers": { + "description": "The list of internal load balancers to health check.", + "items": { + "properties": { + "ipAddressRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "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", + "additionalProperties": false + }, + "ipProtocol": { + "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].", + "type": "string" + }, + "loadBalancerType": { + "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].", + "type": "string" + }, + "networkRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.", + "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", + "additionalProperties": false + }, + "port": { + "description": "The configured port of the load balancer.", + "type": "string" + }, + "projectRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `name` field of a `Project` resource.", + "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", + "additionalProperties": false + }, + "regionRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.", + "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", + "additionalProperties": false + } + }, + "required": [ + "ipAddressRef", + "ipProtocol", + "loadBalancerType", + "networkRef", + "port", + "projectRef" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "internalLoadBalancers" + ], + "type": "object", + "additionalProperties": false + }, + "location": { + "description": "The location name defined in Google Cloud.", + "type": "string" + }, + "rrdatasRefs": { + "items": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "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", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "location" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "enableGeoFencingForBackups": { + "description": "Specifies whether to enable fencing for backup geo queries.", + "type": "boolean" + }, + "primary": { + "description": "The list of global primary targets to be health checked.", + "properties": { + "internalLoadBalancers": { + "description": "The list of internal load balancers to health check.", + "items": { + "properties": { + "ipAddressRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "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", + "additionalProperties": false + }, + "ipProtocol": { + "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].", + "type": "string" + }, + "loadBalancerType": { + "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].", + "type": "string" + }, + "networkRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.", + "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", + "additionalProperties": false + }, + "port": { + "description": "The configured port of the load balancer.", + "type": "string" + }, + "projectRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `name` field of a `Project` resource.", + "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", + "additionalProperties": false + }, + "regionRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.", + "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", + "additionalProperties": false + } + }, + "required": [ + "ipAddressRef", + "ipProtocol", + "loadBalancerType", + "networkRef", + "port", + "projectRef" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "internalLoadBalancers" + ], + "type": "object", + "additionalProperties": false + }, + "trickleRatio": { + "description": "Specifies the percentage of traffic to send to the backup targets even when the primary targets are healthy.", + "type": "number" + } + }, + "required": [ + "backupGeo", + "primary" + ], + "type": "object", + "additionalProperties": false + }, + "wrr": { + "description": "The configuration for Weighted Round Robin based routing policy.", + "items": { + "properties": { + "healthCheckedTargets": { + "description": "The list of targets to be health checked. Note that if DNSSEC is enabled for this zone, only one of `rrdatas` or `health_checked_targets` can be set.", + "properties": { + "internalLoadBalancers": { + "description": "The list of internal load balancers to health check.", + "items": { + "properties": { + "ipAddressRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "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", + "additionalProperties": false + }, + "ipProtocol": { + "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].", + "type": "string" + }, + "loadBalancerType": { + "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].", + "type": "string" + }, + "networkRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.", + "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", + "additionalProperties": false + }, + "port": { + "description": "The configured port of the load balancer.", + "type": "string" + }, + "projectRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `name` field of a `Project` resource.", + "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", + "additionalProperties": false + }, + "regionRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.", + "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", + "additionalProperties": false + } + }, + "required": [ + "ipAddressRef", + "ipProtocol", + "loadBalancerType", + "networkRef", + "port", + "projectRef" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "internalLoadBalancers" + ], + "type": "object", + "additionalProperties": false + }, + "rrdatasRefs": { + "items": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name", + "kind" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + }, + { + "required": [ + "kind" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `address` field of a `ComputeAddress` resource.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent. Allowed values: ComputeAddress", + "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", + "additionalProperties": false + }, + "type": "array" + }, + "weight": { + "description": "The ratio of traffic routed to the target.", + "type": "number" + } + }, + "required": [ + "weight" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, "rrdatas": { "description": "DEPRECATED. Although this field is still available, there is limited support. We recommend that you use `spec.rrdatasRefs` instead.", "items": { diff --git a/eventarc.cnrm.cloud.google.com/eventarctrigger_v1beta1.json b/eventarc.cnrm.cloud.google.com/eventarctrigger_v1beta1.json index fad59b0b..a5d32c4e 100644 --- a/eventarc.cnrm.cloud.google.com/eventarctrigger_v1beta1.json +++ b/eventarc.cnrm.cloud.google.com/eventarctrigger_v1beta1.json @@ -261,6 +261,79 @@ "type": "object", "additionalProperties": false }, + "httpEndpoint": { + "description": "An HTTP endpoint destination described by an URI.", + "properties": { + "uri": { + "description": "Required. The URI of the HTTP enpdoint. The value must be a RFC2396 URI string. Examples: `http://10.10.10.8:80/route`, `http://svc.us-central1.p.local:8080/`. Only HTTP and HTTPS protocols are supported. The host can be either a static IP addressable from the VPC specified by the network config, or an internal DNS hostname of the service resolvable via Cloud DNS.", + "type": "string" + } + }, + "required": [ + "uri" + ], + "type": "object", + "additionalProperties": false + }, + "networkConfig": { + "description": "Optional. Network config is used to configure how Eventarc resolves and connect to a destination. This should only be used with HttpEndpoint destination type.", + "properties": { + "networkAttachmentRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Required. Name of the NetworkAttachment that allows access to the destination VPC. Format: `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}`", + "type": "string" + }, + "name": { + "description": "[WARNING] ComputeNetworkAttachment not yet supported in Config Connector, use 'external' field to reference existing resources.\nName 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", + "additionalProperties": false + } + }, + "required": [ + "networkAttachmentRef" + ], + "type": "object", + "additionalProperties": false + }, "workflowRef": { "oneOf": [ { diff --git a/gkehub.cnrm.cloud.google.com/gkehubfeaturemembership_v1beta1.json b/gkehub.cnrm.cloud.google.com/gkehubfeaturemembership_v1beta1.json index c8e411e5..8e1e011d 100644 --- a/gkehub.cnrm.cloud.google.com/gkehubfeaturemembership_v1beta1.json +++ b/gkehub.cnrm.cloud.google.com/gkehubfeaturemembership_v1beta1.json @@ -1,11 +1,12 @@ { + "description": "GKEHubFeatureMembership is the Schema for the gkehub 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/api-conventions.md#resources", + "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/api-conventions.md#types-kinds", + "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": { @@ -17,7 +18,7 @@ "description": "Config Management-specific spec.", "properties": { "binauthz": { - "description": "Binauthz configuration for the cluster.", + "description": "**DEPRECATED** Binauthz configuration for the cluster. This field will be ignored and should not be set.", "properties": { "enabled": { "description": "Whether binauthz is enabled in this cluster.", @@ -66,7 +67,7 @@ ], "properties": { "external": { - "description": "The GCP Service Account Email used for auth when secretType is gcpServiceAccount.\n\nAllowed value: The `email` field of an `IAMServiceAccount` resource.", + "description": "The GCP Service Account Email used for auth when secretType is gcpServiceAccount. Allowed value: The `email` field of an `IAMServiceAccount` resource.", "type": "string" }, "name": { @@ -113,6 +114,55 @@ "type": "object", "additionalProperties": false }, + "metricsGcpServiceAccountRef": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Allowed value: The `email` field of an `IAMServiceAccount` resource.", + "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", + "additionalProperties": false + }, "oci": { "properties": { "gcpServiceAccountRef": { @@ -149,7 +199,7 @@ ], "properties": { "external": { - "description": "The GCP Service Account Email used for auth when secret_type is gcpserviceaccount. \n\nAllowed value: The `email` field of an `IAMServiceAccount` resource.", + "description": "The GCP Service Account Email used for auth when secretType is gcpServiceAccount. Allowed value: The `email` field of an `IAMServiceAccount` resource.", "type": "string" }, "name": { @@ -241,7 +291,7 @@ "description": "Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [\"cloudmonitoring\", \"prometheus\"]. Default: [\"cloudmonitoring\", \"prometheus\"]", "properties": { "backends": { - "description": " Specifies the list of backends Policy Controller will export to. Specifying an empty value `[]` disables metrics export.", + "description": "Specifies the list of backends Policy Controller will export to. Specifying an empty value `[]` disables metrics export.", "items": { "type": "string" }, @@ -310,7 +360,7 @@ ], "properties": { "external": { - "description": "The name of the feature\n\nAllowed value: The Google Cloud resource name of a `GKEHubFeature` resource (format: `projects/{{project}}/locations/{{location}}/features/{{name}}`).", + "description": "The name of the feature. Allowed value: The Google Cloud resource name of a `GKEHubFeature` resource (format: `projects/{{project}}/locations/{{location}}/features/{{name}}`).", "type": "string" }, "name": { @@ -329,6 +379,10 @@ "description": "Immutable. The location of the feature", "type": "string" }, + "membershipLocation": { + "description": "Immutable. The location of the membership", + "type": "string" + }, "membershipRef": { "description": "Immutable.", "oneOf": [ @@ -364,7 +418,7 @@ ], "properties": { "external": { - "description": "The name of the membership\n\nAllowed value: The Google Cloud resource name of a `GKEHubMembership` resource (format: `projects/{{project}}/locations/{{location}}/memberships/{{name}}`).", + "description": "The name of the membership. Allowed value: The Google Cloud resource name of a `GKEHubMembership` resource (format: `projects/{{project}}/locations/{{location}}/memberships/{{name}}`).", "type": "string" }, "name": { @@ -394,6 +448,92 @@ "type": "object", "additionalProperties": false }, + "policycontroller": { + "description": "Policy Controller-specific spec.", + "properties": { + "policyControllerHubConfig": { + "description": "Policy Controller configuration for the cluster.", + "properties": { + "auditIntervalSeconds": { + "description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", + "format": "int64", + "type": "integer" + }, + "constraintViolationLimit": { + "description": "The maximum number of audit violations to be stored in a constraint. If not set, the internal default of 20 will be used.", + "format": "int64", + "type": "integer" + }, + "exemptableNamespaces": { + "description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", + "items": { + "type": "string" + }, + "type": "array" + }, + "installSpec": { + "description": "Configures the mode of the Policy Controller installation. Possible values: INSTALL_SPEC_UNSPECIFIED, INSTALL_SPEC_NOT_INSTALLED, INSTALL_SPEC_ENABLED, INSTALL_SPEC_SUSPENDED, INSTALL_SPEC_DETACHED", + "type": "string" + }, + "logDeniesEnabled": { + "description": "Logs all denies and dry run failures.", + "type": "boolean" + }, + "monitoring": { + "description": "Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [\"cloudmonitoring\", \"prometheus\"]. Default: [\"cloudmonitoring\", \"prometheus\"]", + "properties": { + "backends": { + "description": "Specifies the list of backends Policy Controller will export to. Specifying an empty value `[]` disables metrics export.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "mutationEnabled": { + "description": "Enables the ability to mutate resources using Policy Controller.", + "type": "boolean" + }, + "policyContent": { + "description": "Specifies the desired policy content on the cluster.", + "properties": { + "templateLibrary": { + "description": "Configures the installation of the Template Library.", + "properties": { + "installation": { + "description": "Configures the manner in which the template library is installed on the cluster. Possible values: INSTALLATION_UNSPECIFIED, NOT_INSTALLED, ALL", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "referentialRulesEnabled": { + "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "version": { + "description": "Optional. Version of Policy Controller to install. Defaults to the latest version.", + "type": "string" + } + }, + "required": [ + "policyControllerHubConfig" + ], + "type": "object", + "additionalProperties": false + }, "projectRef": { "description": "Immutable. The Project that this resource belongs to.", "oneOf": [ @@ -429,7 +569,7 @@ ], "properties": { "external": { - "description": "The project of the feature\n\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", + "description": "The project of the feature. Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", "type": "string" }, "name": { @@ -457,7 +597,7 @@ "status": { "properties": { "conditions": { - "description": "Conditions represent the latest available observation of the resource's current state.", + "description": "Conditions represent the latest available observations of the GKEHubFeatureMembership's current state.", "items": { "properties": { "lastTransitionTime": { @@ -488,6 +628,7 @@ }, "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" } }, diff --git a/logging.cnrm.cloud.google.com/logginglogbucket_v1beta1.json b/logging.cnrm.cloud.google.com/logginglogbucket_v1beta1.json index e039fcea..fd8b89b0 100644 --- a/logging.cnrm.cloud.google.com/logginglogbucket_v1beta1.json +++ b/logging.cnrm.cloud.google.com/logginglogbucket_v1beta1.json @@ -89,6 +89,10 @@ "description": "Describes this bucket.", "type": "string" }, + "enableAnalytics": { + "description": " Whether or not Log Analytics is enabled. Logs for buckets with Log Analytics enabled can be queried in the Log Analytics page using SQL queries. Cannot be disabled once enabled.", + "type": "boolean" + }, "folderRef": { "description": "Immutable. The Folder that this resource belongs to. Only one of [billingAccountRef, folderRef, organizationRef, projectRef] may be specified.", "oneOf": [ diff --git a/logging.cnrm.cloud.google.com/logginglogmetric_v1beta1.json b/logging.cnrm.cloud.google.com/logginglogmetric_v1beta1.json index df122582..c766ce4e 100644 --- a/logging.cnrm.cloud.google.com/logginglogmetric_v1beta1.json +++ b/logging.cnrm.cloud.google.com/logginglogmetric_v1beta1.json @@ -1,11 +1,12 @@ { + "description": "LoggingLogMetric is the Schema for the logging 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/api-conventions.md#resources", + "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/api-conventions.md#types-kinds", + "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": { @@ -21,8 +22,8 @@ "properties": { "bounds": { "description": "The values must be monotonically increasing.", + "format": "double", "items": { - "format": "double", "type": "number" }, "type": "array" @@ -98,6 +99,66 @@ "description": "Optional. A map from a label key string to an extractor expression which is used to extract data from a log entry field and assign as the label value. Each label key specified in the LabelDescriptor must have an associated extractor expression in this map. The syntax of the extractor expression is the same as for the `value_extractor` field. The extracted value is converted to the type defined in the label descriptor. If the either the extraction or the type conversion fails, the label will have a default value. The default value for a string label is an empty string, for an integer label its 0, and for a boolean label its `false`. Note that there are upper bounds on the maximum number of labels and the number of active time series that are allowed in a project.", "type": "object" }, + "loggingLogBucketRef": { + "description": "The reference to the Log Bucket that owns the Log Metric. Only Log Buckets in projects are supported. The bucket has to be in the same project as the metric. For example:projects/my-project/locations/global/buckets/my-bucket If empty, then the Log Metric is considered a non-Bucket Log Metric. Only `external` field is supported to configure the reference for now.", + "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", + "additionalProperties": false + }, "metricDescriptor": { "description": "Optional. The metric descriptor associated with the logs-based metric. If unspecified, it uses a default metric descriptor with a DELTA metric kind, INT64 value type, with no labels and a unit of \"1\". Such a metric counts the number of log entries matching the `filter` expression. The `name`, `type`, and `description` fields in the `metric_descriptor` are output only, and is constructed using the `name` and `description` field in the LogMetric. To create a logs-based metric that records a distribution of log values, a DELTA metric kind with a DISTRIBUTION value type must be used along with a `value_extractor` expression in the LogMetric. Each label in the metric descriptor must have a matching label name as the key and an extractor expression as the value in the `label_extractors` map. The `metric_kind` and `value_type` fields in the `metric_descriptor` cannot be updated once initially configured. New labels can be added in the `metric_descriptor`, but existing labels cannot be modified except for their description.", "properties": { @@ -197,15 +258,19 @@ ], "properties": { "external": { - "description": "The resource name of the project in which to create the metric.\n\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", + "description": "The `projectID` field of a project, when not managed by KCC.", + "type": "string" + }, + "kind": { + "description": "The kind of the Project resource; optional but must be `Project` if provided.", "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "The `name` field of a `Project` resource.", "type": "string" }, "namespace": { - "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "description": "The `namespace` field of a `Project` resource.", "type": "string" } }, @@ -231,7 +296,7 @@ "status": { "properties": { "conditions": { - "description": "Conditions represent the latest available observation of the resource's current state.", + "description": "Conditions represent the latest available observations of the LoggingLogMetric's current state.", "items": { "properties": { "lastTransitionTime": { diff --git a/monitoring.cnrm.cloud.google.com/monitoringalertpolicy_v1beta1.json b/monitoring.cnrm.cloud.google.com/monitoringalertpolicy_v1beta1.json index f06d81c3..6f95fdf9 100644 --- a/monitoring.cnrm.cloud.google.com/monitoringalertpolicy_v1beta1.json +++ b/monitoring.cnrm.cloud.google.com/monitoringalertpolicy_v1beta1.json @@ -440,6 +440,10 @@ "resourceID": { "description": "Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.", "type": "string" + }, + "severity": { + "description": "The severity of an alert policy indicates how important\nincidents generated by that policy are. The severity level will be displayed on\nthe Incident detail page and in notifications. Possible values: [\"CRITICAL\", \"ERROR\", \"WARNING\"].", + "type": "string" } }, "required": [ diff --git a/monitoring.cnrm.cloud.google.com/monitoringdashboard_v1beta1.json b/monitoring.cnrm.cloud.google.com/monitoringdashboard_v1beta1.json index 74b4dced..cdce0341 100644 --- a/monitoring.cnrm.cloud.google.com/monitoringdashboard_v1beta1.json +++ b/monitoring.cnrm.cloud.google.com/monitoringdashboard_v1beta1.json @@ -1,11 +1,12 @@ { + "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/api-conventions.md#resources", + "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/api-conventions.md#types-kinds", + "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": { @@ -21,7 +22,7 @@ "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). Greater the weight, greater the width of the column on the screen. If omitted, a value of 1 is used while rendering.", + "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" }, @@ -29,19 +30,88 @@ "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 KCC.", + "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", + "additionalProperties": false + } + }, + "required": [ + "alertPolicyRef" + ], + "type": "object", + "additionalProperties": false + }, "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", - "x-kubernetes-preserve-unknown-fields": true + "additionalProperties": false }, - "logsPanel": { + "errorReportingPanel": { + "description": "A widget that displays a list of error groups.", "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). Only log entries that match the filter are returned. An empty filter matches all log entries.", - "type": "string" - }, - "resourceNames": { + "projectRefs": { + "description": "The projects from which to gather errors.", "items": { + "description": "The Project that this resource belongs to.", "oneOf": [ { "not": { @@ -50,7 +120,8 @@ ] }, "required": [ - "name" + "name", + "kind" ] }, { @@ -65,6 +136,11 @@ "required": [ "namespace" ] + }, + { + "required": [ + "kind" + ] } ] }, @@ -75,15 +151,19 @@ ], "properties": { "external": { - "description": "Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", + "description": "The `projectID` field of a project, when not managed by KCC.", + "type": "string" + }, + "kind": { + "description": "The kind of the Project resource; optional but must be `Project` if provided.", "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "The `name` field of a `Project` resource.", "type": "string" }, "namespace": { - "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "description": "The `namespace` field of a `Project` resource.", "type": "string" } }, @@ -91,369 +171,214 @@ "additionalProperties": false }, "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", "additionalProperties": false }, - "scorecard": { - "description": "A scorecard summarizing time series data.", + "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": { - "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", - "additionalProperties": false - }, - "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. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.", - "type": "string" + "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" + } }, - "sparkChartType": { - "description": "Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR", - "type": "string" - } + "type": "object", + "additionalProperties": false }, - "required": [ - "sparkChartType" - ], - "type": "object", - "additionalProperties": false + "type": "array" }, - "thresholds": { - "description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.) As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', },: { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", + "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": { - "color": { - "description": "The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", + "external": { + "description": "The MonitoringAlertPolicy link in the form \"projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]\", when not managed by KCC.", "type": "string" }, - "direction": { - "description": "The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", + "name": { + "description": "The `name` field of a `MonitoringAlertPolicy` resource.", "type": "string" }, - "label": { - "description": "A label for the threshold.", + "namespace": { + "description": "The `namespace` field of a `MonitoringAlertPolicy` resource.", "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", "additionalProperties": false }, "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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" }, - "timeSeriesQuery": { - "description": "Required. Fields for querying time series data from the Stackdriver metrics API.", - "properties": { - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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" + "resourceNames": { + "description": "The names of logging resources to collect logs for.", + "items": { + "oneOf": [ + { + "not": { + "required": [ + "external" + ] }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", - "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", - "type": "string" + "required": [ + "name", + "kind" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "type": "integer" + { + "required": [ + "namespace" + ] }, - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" + { + "required": [ + "kind" + ] } - }, - "type": "object", - "additionalProperties": false + ] }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - } + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "The external name of the referenced resource", + "type": "string" }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "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. 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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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" - } - }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "numerator": { - "description": "The numerator of the ratio.", - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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" - } - }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", - "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", - "type": "string" - }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - } + "kind": { + "description": "Kind of the referent.", + "type": "string" }, - "type": "object", - "additionalProperties": false - }, - "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", - "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" + } }, - "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", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false + "type": "array" } }, - "required": [ - "timeSeriesQuery" - ], "type": "object", "additionalProperties": false }, - "text": { - "description": "A raw string or markdown displaying textual content.", + "pieChart": { + "description": "A widget that displays timeseries data as a pie chart.", "properties": { - "content": { - "description": "The text content to be displayed.", + "chartType": { + "description": "Required. Indicates the visualization type for the PieChart.", "type": "string" }, - "format": { - "description": "How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, "dataSets": { - "description": "Required. The data displayed in this chart.", + "description": "Required. The queries for the chart's data.", "items": { "properties": { - "legendTemplate": { - "description": "A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. ", - "type": "string" - }, "minAlignmentPeriod": { - "description": "Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", + "description": "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. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP", + "sliceNameTemplate": { + "description": "Optional. A template for the name of the slice.", "type": "string" }, "timeSeriesQuery": { - "description": "Required. Fields for querying time series data from the Stackdriver metrics API.", + "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": { @@ -461,22 +386,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -491,16 +416,16 @@ "description": "Ranking based time series filter.", "properties": { "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -511,22 +436,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -547,25 +472,25 @@ "description": "The denominator of the ratio.", "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.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -573,7 +498,7 @@ "additionalProperties": false }, "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "description": "The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", "type": "string" } }, @@ -587,25 +512,25 @@ "description": "The numerator of the ratio.", "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.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -613,7 +538,7 @@ "additionalProperties": false }, "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "description": "The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", "type": "string" } }, @@ -627,16 +552,16 @@ "description": "Ranking based time series filter.", "properties": { "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -647,22 +572,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -674,7 +599,7 @@ "additionalProperties": false }, "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", + "description": "A query used to fetch time series with MQL.", "type": "string" }, "unitOverride": { @@ -694,22 +619,80 @@ }, "type": "array" }, + "showLabels": { + "description": "Optional. Indicates whether or not the pie chart should show slices' labels", + "type": "boolean" + } + }, + "required": [ + "chartType", + "dataSets" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, "thresholds": { - "description": "Threshold lines drawn horizontally across the chart.", + "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. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", + "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. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", + "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", @@ -721,34 +704,314 @@ }, "type": "array" }, - "timeshiftDuration": { - "description": "The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.", - "type": "string" - }, - "xAxis": { - "description": "The properties applied to the X axis.", + "timeSeriesQuery": { + "description": "Required. Fields for querying time series data from the Stackdriver metrics API.", "properties": { - "label": { - "description": "The label of the axis.", + "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" }, - "scale": { - "description": "The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "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" }, - "yAxis": { - "description": "The properties applied to the Y axis.", + "subtitle": { + "description": "The subtitle of the section", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "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": { - "label": { - "description": "The label of the axis.", + "backgroundColor": { + "description": "The background color as a hex string. \"#RRGGBB\" or \"#RGB\"", "type": "string" }, - "scale": { - "description": "The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", + "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" } }, @@ -756,429 +1019,2055 @@ "additionalProperties": false } }, - "required": [ - "dataSets" - ], "type": "object", "additionalProperties": false - } - }, - "type": "object", - "additionalProperties": false - }, - "type": "array" - } - }, - "type": "object", - "additionalProperties": false - }, - "type": "array" - } - }, - "type": "object", - "additionalProperties": false - }, - "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": { - "blank": { - "description": "A blank space.", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true - }, - "logsPanel": { - "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). Only log entries that match the filter are returned. An empty filter matches all log entries.", - "type": "string" - }, - "resourceNames": { - "items": { - "oneOf": [ - { - "not": { - "required": [ - "external" - ] - }, - "required": [ - "name" - ] - }, - { - "not": { - "anyOf": [ - { - "required": [ - "name" - ] - }, - { - "required": [ - "namespace" - ] - } - ] - }, - "required": [ - "external" - ] - } - ], - "properties": { - "external": { - "description": "Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", - "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", - "additionalProperties": false - }, - "type": "array" - } - }, - "type": "object", - "additionalProperties": false - }, - "scorecard": { - "description": "A scorecard summarizing time series data.", - "properties": { - "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", - "additionalProperties": false - }, - "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. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.", - "type": "string" - }, - "sparkChartType": { - "description": "Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR", - "type": "string" - } }, - "required": [ - "sparkChartType" - ], - "type": "object", - "additionalProperties": false - }, - "thresholds": { - "description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.) As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', },: { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", - "items": { + "timeSeriesTable": { + "description": "A widget that displays time series data in a tabular format.", "properties": { - "color": { - "description": "The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", - "type": "string" - }, - "direction": { - "description": "The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", - "type": "string" - }, - "label": { - "description": "A label for the threshold.", - "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", - "additionalProperties": false - }, - "type": "array" - }, - "timeSeriesQuery": { - "description": "Required. Fields for querying time series data from the Stackdriver metrics API.", - "properties": { - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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.", + "columnSettings": { + "description": "Optional. The list of the persistent column settings for the table.", + "items": { "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "column": { + "description": "Required. The id of the column.", "type": "string" }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" + "visible": { + "description": "Required. Whether the column should be visible on page load.", + "type": "boolean" } }, + "required": [ + "column", + "visible" + ], "type": "object", "additionalProperties": false }, - "secondaryAggregation": { - "description": "Apply a second aggregation after `aggregation` is applied.", + "type": "array" + }, + "dataSets": { + "description": "Required. The data displayed in this table.", + "items": { "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "minAlignmentPeriod": { + "description": "Optional. The lower bound on data point frequency for this data set.", "type": "string" }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "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. Use this field to combine multiple time series for different views of the data.", + "tableDisplayOptions": { + "description": "Optional. Table display options for configuring how the table is rendered.", "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "shownColumns": { + "description": "Optional. This field is unused and has been replaced by TimeSeriesTable.column_settings", "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" } }, "type": "object", "additionalProperties": false }, - "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "tableTemplate": { + "description": "Optional. A template string for naming `TimeSeries` in the resulting data set.", "type": "string" - } - }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "numerator": { - "description": "The numerator of the ratio.", - "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.", + }, + "timeSeriesQuery": { + "description": "Required. Fields for querying time series data from the Stackdriver metrics API.", "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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" }, - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { - "type": "string" + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } }, - "type": "array" + "type": "object", + "additionalProperties": false }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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", "additionalProperties": false - }, - "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" } }, - "required": [ - "filter" - ], "type": "object", "additionalProperties": false }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", + "type": "array" + }, + "metricVisualization": { + "description": "Optional. Store rendering strategy", + "type": "string" + } + }, + "required": [ + "dataSets" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "dataSets": { + "description": "Required. The data displayed in this chart.", + "items": { "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "legendTemplate": { + "description": "A template string for naming `TimeSeries` in the resulting data set.", "type": "string" }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "dataSets" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + } + }, + "required": [ + "alertPolicyRef" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "showLabels": { + "description": "Optional. Indicates whether or not the pie chart should show slices' labels", + "type": "boolean" + } + }, + "required": [ + "chartType", + "dataSets" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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" }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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" }, - "type": "array" + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } + "type": "object", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false - } - }, - "type": "object", - "additionalProperties": false - }, - "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", - "type": "string" + "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", + "additionalProperties": false + } }, - "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", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "timeSeriesQuery" - ], - "type": "object", - "additionalProperties": false - }, - "text": { - "description": "A raw string or markdown displaying textual content.", - "properties": { - "content": { - "description": "The text content to be displayed.", - "type": "string" + "type": "array" }, - "format": { - "description": "How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW", + "metricVisualization": { + "description": "Optional. Store rendering strategy", "type": "string" } }, + "required": [ + "dataSets" + ], "type": "object", "additionalProperties": false }, @@ -1193,7 +3082,7 @@ "description": "Display options for the chart.", "properties": { "mode": { - "description": "The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS", + "description": "The chart mode.", "type": "string" } }, @@ -1205,20 +3094,32 @@ "items": { "properties": { "legendTemplate": { - "description": "A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. ", + "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, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", + "description": "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. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP", + "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": "Required. Fields for querying time series data from the Stackdriver metrics API.", + "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": { @@ -1226,22 +3127,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -1256,16 +3157,16 @@ "description": "Ranking based time series filter.", "properties": { "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -1276,22 +3177,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -1312,25 +3213,25 @@ "description": "The denominator of the ratio.", "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.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -1338,7 +3239,7 @@ "additionalProperties": false }, "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "description": "The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", "type": "string" } }, @@ -1352,25 +3253,25 @@ "description": "The numerator of the ratio.", "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.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -1378,7 +3279,7 @@ "additionalProperties": false }, "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "description": "The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", "type": "string" } }, @@ -1392,16 +3293,16 @@ "description": "Ranking based time series filter.", "properties": { "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -1412,22 +3313,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -1439,7 +3340,7 @@ "additionalProperties": false }, "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", + "description": "A query used to fetch time series with MQL.", "type": "string" }, "unitOverride": { @@ -1464,17 +3365,21 @@ "items": { "properties": { "color": { - "description": "The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", + "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. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", + "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", @@ -1487,18 +3392,33 @@ "type": "array" }, "timeshiftDuration": { - "description": "The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.", + "description": "The duration used to display a comparison chart.", "type": "string" }, "xAxis": { - "description": "The properties applied to the X axis.", + "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", + "additionalProperties": false + }, + "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. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", + "description": "The axis scale. By default, a linear scale is used.", "type": "string" } }, @@ -1506,14 +3426,14 @@ "additionalProperties": false }, "yAxis": { - "description": "The properties applied to the Y axis.", + "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. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", + "description": "The axis scale. By default, a linear scale is used.", "type": "string" } }, @@ -1538,11 +3458,11 @@ "additionalProperties": false }, "mosaicLayout": { - "description": "The content is arranged as a grid of tiles, with each content widget occupying one or more tiles.", + "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.", - "format": "int64", + "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": { @@ -1550,25 +3470,267 @@ "items": { "properties": { "height": { - "description": "The height of the tile, measured in grid squares.", - "format": "int64", + "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.", + "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 KCC.", + "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", + "additionalProperties": false + } + }, + "required": [ + "alertPolicyRef" + ], + "type": "object", + "additionalProperties": false + }, "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", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + }, + "type": "array" + } + }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "additionalProperties": false }, "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). Only log entries that match the filter are returned. An empty filter matches all log entries.", + "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": [ { @@ -1578,7 +3740,8 @@ ] }, "required": [ - "name" + "name", + "kind" ] }, { @@ -1593,6 +3756,11 @@ "required": [ "namespace" ] + }, + { + "required": [ + "kind" + ] } ] }, @@ -1603,7 +3771,11 @@ ], "properties": { "external": { - "description": "Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", + "description": "The external name of the referenced resource", + "type": "string" + }, + "kind": { + "description": "Kind of the referent.", "type": "string" }, "name": { @@ -1624,9 +3796,295 @@ "type": "object", "additionalProperties": false }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "showLabels": { + "description": "Optional. Indicates whether or not the pie chart should show slices' labels", + "type": "boolean" + } + }, + "required": [ + "chartType", + "dataSets" + ], + "type": "object", + "additionalProperties": false + }, "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": { @@ -1648,11 +4106,11 @@ "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. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.", + "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. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR", + "description": "Required. The type of sparkchart to show in this chartView.", "type": "string" } }, @@ -1663,21 +4121,25 @@ "additionalProperties": false }, "thresholds": { - "description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.) As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', },: { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", + "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. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", + "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. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", + "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", @@ -1692,6 +4154,14 @@ "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": { @@ -1699,249 +4169,613 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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" }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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" + "type": "array" + } }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", - "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", - "type": "string" - }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" - } + "type": "object", + "additionalProperties": false + }, + "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" }, - "type": "object", - "additionalProperties": false - }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } + "prometheusQuery": { + "description": "A query used to fetch time series with PromQL.", + "type": "string" }, - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "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. 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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "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" + } }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { + "type": "object", + "additionalProperties": false + }, + "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" }, - "type": "array" + "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" + } }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } + "type": "object", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false + "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", + "additionalProperties": false + } }, - "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" - } + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "numerator": { - "description": "The numerator of the ratio.", - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "type": "string" + "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", + "additionalProperties": false + }, + "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" + } }, - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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" + } }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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" }, - "type": "array" + "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" + } }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } + "type": "object", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false + "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", + "additionalProperties": false + } }, - "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" - } + "type": "object", + "additionalProperties": false }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", - "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", - "type": "string" - }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" - } + "timeSeriesQueryLanguage": { + "description": "A query used to fetch time series with MQL.", + "type": "string" }, - "type": "object", - "additionalProperties": false + "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" + } }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - } - }, - "type": "object", - "additionalProperties": false - }, - "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", - "type": "string" + "type": "object", + "additionalProperties": false + } }, - "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", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "timeSeriesQuery" - ], - "type": "object", - "additionalProperties": false - }, - "text": { - "description": "A raw string or markdown displaying textual content.", - "properties": { - "content": { - "description": "The text content to be displayed.", - "type": "string" + "type": "array" }, - "format": { - "description": "How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW", + "metricVisualization": { + "description": "Optional. Store rendering strategy", "type": "string" } }, + "required": [ + "dataSets" + ], "type": "object", "additionalProperties": false }, @@ -1956,7 +4790,7 @@ "description": "Display options for the chart.", "properties": { "mode": { - "description": "The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS", + "description": "The chart mode.", "type": "string" } }, @@ -1968,20 +4802,32 @@ "items": { "properties": { "legendTemplate": { - "description": "A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. ", + "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, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", + "description": "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. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP", + "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": "Required. Fields for querying time series data from the Stackdriver metrics API.", + "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": { @@ -1989,46 +4835,182 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "description": "The set of fields to preserve when `cross_series_reducer` is specified.", "items": { "type": "string" }, - "type": "array" + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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", "additionalProperties": false }, - "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. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -2036,25 +5018,25 @@ "additionalProperties": false }, "secondaryAggregation": { - "description": "Apply a second aggregation after `aggregation` is applied.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -2062,345 +5044,474 @@ "additionalProperties": false } }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "dataSets" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + }, + "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 KCC.", + "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", + "additionalProperties": false + } + }, + "required": [ + "alertPolicyRef" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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": [ - "filter" - ], - "type": "object", - "additionalProperties": false + "external" + ] }, - "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. 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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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" - } - }, + "required": [ + "name", + "kind" + ] + }, + { + "not": { + "anyOf": [ + { "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false + "name" + ] }, - "numerator": { - "description": "The numerator of the ratio.", - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, - "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" - } - }, + { "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", - "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", - "type": "string" - }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false + "namespace" + ] }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false + { + "required": [ + "kind" + ] } - }, - "type": "object", - "additionalProperties": false - }, - "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", - "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" - } + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "The `projectID` field of a project, when not managed by KCC.", + "type": "string" }, - "type": "object", - "additionalProperties": false - } + "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", + "additionalProperties": false }, - "required": [ - "timeSeriesQuery" - ], - "type": "object", - "additionalProperties": false + "type": "array" }, - "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" + } }, - "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. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", - "type": "string" - }, - "direction": { - "description": "The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", - "type": "string" + "type": "object", + "additionalProperties": false + }, + "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" + } }, - "label": { - "description": "A label for the threshold.", - "type": "string" + "type": "object", + "additionalProperties": false + }, + "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 KCC.", + "type": "string" + }, + "name": { + "description": "The `name` field of a `MonitoringAlertPolicy` resource.", + "type": "string" + }, + "namespace": { + "description": "The `namespace` field of a `MonitoringAlertPolicy` resource.", + "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", - "additionalProperties": false - }, - "type": "array" - }, - "timeshiftDuration": { - "description": "The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.", - "type": "string" - }, - "xAxis": { - "description": "The properties applied to the X axis.", - "properties": { - "label": { - "description": "The label of the axis.", - "type": "string" + "type": "object", + "additionalProperties": false }, - "scale": { - "description": "The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false + "type": "array" + } }, - "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. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "dataSets" - ], - "type": "object", - "additionalProperties": false - } - }, - "type": "object", - "additionalProperties": false - }, - "width": { - "description": "The width of the tile, measured in grid squares.", - "format": "int64", - "type": "integer" - }, - "xPos": { - "description": "The zero-indexed position of the tile in grid squares relative to the left edge of the grid.", - "format": "int64", - "type": "integer" - }, - "yPos": { - "description": "The zero-indexed position of the tile in grid squares relative to the top edge of the grid.", - "format": "int64", - "type": "integer" - } - }, - "type": "object", - "additionalProperties": false - }, - "type": "array" - } - }, - "type": "object", - "additionalProperties": false - }, - "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 project id of the resource.\n\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", - "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", - "additionalProperties": false - }, - "resourceID": { - "description": "Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.", - "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). Greater the weight, greater the height of the row on the screen. If omitted, a value of 1 is used while rendering.", - "format": "int64", - "type": "integer" - }, - "widgets": { - "description": "The display widgets arranged horizontally in this row.", - "items": { - "properties": { - "blank": { - "description": "A blank space.", "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "additionalProperties": false }, "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). Only log entries that match the filter are returned. An empty filter matches all log entries.", + "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": [ { @@ -2410,7 +5521,8 @@ ] }, "required": [ - "name" + "name", + "kind" ] }, { @@ -2421,44 +5533,339 @@ "name" ] }, - { - "required": [ - "namespace" - ] - } - ] + { + "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", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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" + } }, - "required": [ - "external" - ] - } - ], - "properties": { - "external": { - "description": "Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).", - "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", + "additionalProperties": false } }, + "required": [ + "timeSeriesQuery" + ], "type": "object", "additionalProperties": false }, "type": "array" + }, + "showLabels": { + "description": "Optional. Indicates whether or not the pie chart should show slices' labels", + "type": "boolean" } }, + "required": [ + "chartType", + "dataSets" + ], "type": "object", "additionalProperties": false }, "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": { @@ -2480,11 +5887,11 @@ "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. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.", + "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. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR", + "description": "Required. The type of sparkchart to show in this chartView.", "type": "string" } }, @@ -2495,21 +5902,25 @@ "additionalProperties": false }, "thresholds": { - "description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.) As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', },: { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", + "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. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", + "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. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", + "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", @@ -2524,53 +5935,197 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "type": "string" + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false }, - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { - "type": "string" + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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": "array" + "type": "object", + "additionalProperties": false }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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", "additionalProperties": false }, - "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. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -2578,25 +6133,25 @@ "additionalProperties": false }, "secondaryAggregation": { - "description": "Apply a second aggregation after `aggregation` is applied.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -2604,176 +6159,404 @@ "additionalProperties": false } }, - "required": [ - "filter" - ], "type": "object", "additionalProperties": false }, - "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. 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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "type": "string" + "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", + "additionalProperties": false + } + }, + "required": [ + "timeSeriesQuery" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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", + "additionalProperties": false + } + }, + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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" + } }, - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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", + "additionalProperties": false + }, + "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" + } }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { + "required": [ + "filter" + ], + "type": "object", + "additionalProperties": false + }, + "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" }, - "type": "array" + "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" + } }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } + "type": "object", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false - }, - "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" - } - }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "numerator": { - "description": "The numerator of the ratio.", - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "items": { + "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" }, - "type": "array" + "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" + } }, - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false + "type": "object", + "additionalProperties": false + } }, - "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" - } + "type": "object", + "additionalProperties": false }, - "required": [ - "filter" - ], - "type": "object", - "additionalProperties": false - }, - "pickTimeSeriesFilter": { - "description": "Ranking based time series filter.", - "properties": { - "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", - "type": "string" - }, - "numTimeSeries": { - "description": "How many time series to allow to pass through the filter.", - "format": "int64", - "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", - "type": "string" - } + "timeSeriesQueryLanguage": { + "description": "A query used to fetch time series with MQL.", + "type": "string" }, - "type": "object", - "additionalProperties": false + "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" + } }, - "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", - "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", - "type": "string" - }, - "groupByFields": { - "description": "The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", - "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - } - }, - "type": "object", - "additionalProperties": false - }, - "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", - "type": "string" + "type": "object", + "additionalProperties": false + } }, - "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", + "additionalProperties": false }, - "type": "object", - "additionalProperties": false - } - }, - "required": [ - "timeSeriesQuery" - ], - "type": "object", - "additionalProperties": false - }, - "text": { - "description": "A raw string or markdown displaying textual content.", - "properties": { - "content": { - "description": "The text content to be displayed.", - "type": "string" + "type": "array" }, - "format": { - "description": "How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW", + "metricVisualization": { + "description": "Optional. Store rendering strategy", "type": "string" } }, + "required": [ + "dataSets" + ], "type": "object", "additionalProperties": false }, @@ -2788,7 +6571,7 @@ "description": "Display options for the chart.", "properties": { "mode": { - "description": "The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS", + "description": "The chart mode.", "type": "string" } }, @@ -2800,20 +6583,32 @@ "items": { "properties": { "legendTemplate": { - "description": "A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. ", + "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, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", + "description": "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. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP", + "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": "Required. Fields for querying time series data from the Stackdriver metrics API.", + "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": { @@ -2821,22 +6616,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -2851,16 +6646,16 @@ "description": "Ranking based time series filter.", "properties": { "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -2871,22 +6666,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -2907,25 +6702,25 @@ "description": "The denominator of the ratio.", "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.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -2933,7 +6728,7 @@ "additionalProperties": false }, "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "description": "The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", "type": "string" } }, @@ -2947,25 +6742,25 @@ "description": "The numerator of the ratio.", "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.", + "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -2973,7 +6768,7 @@ "additionalProperties": false }, "filter": { - "description": "Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", + "description": "The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", "type": "string" } }, @@ -2987,16 +6782,16 @@ "description": "Ranking based time series filter.", "properties": { "direction": { - "description": "How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM", + "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": "int64", + "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. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST", + "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" } }, @@ -3007,22 +6802,22 @@ "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. The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.", + "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. Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series. Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION", + "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. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`. Fields not specified in `group_by_fields` are aggregated away. If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.", + "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. Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series. Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.", + "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" } }, @@ -3034,7 +6829,7 @@ "additionalProperties": false }, "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", + "description": "A query used to fetch time series with MQL.", "type": "string" }, "unitOverride": { @@ -3059,17 +6854,21 @@ "items": { "properties": { "color": { - "description": "The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED", + "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. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW", + "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", @@ -3082,18 +6881,33 @@ "type": "array" }, "timeshiftDuration": { - "description": "The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.", + "description": "The duration used to display a comparison chart.", "type": "string" }, "xAxis": { - "description": "The properties applied to the X axis.", + "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", + "additionalProperties": false + }, + "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. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", + "description": "The axis scale. By default, a linear scale is used.", "type": "string" } }, @@ -3101,14 +6915,14 @@ "additionalProperties": false }, "yAxis": { - "description": "The properties applied to the Y axis.", + "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. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10", + "description": "The axis scale. By default, a linear scale is used.", "type": "string" } }, @@ -3149,7 +6963,7 @@ "status": { "properties": { "conditions": { - "description": "Conditions represent the latest available observation of the resource's current state.", + "description": "Conditions represent the latest available observations of the MonitoringDashboard's current state.", "items": { "properties": { "lastTransitionTime": { @@ -3179,11 +6993,12 @@ "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. An \\`etag\\` is returned in the response to \\`GetDashboard\\`, and users are expected to put that etag in the request to \\`UpdateDashboard\\` to ensure that their change will be applied to the same version of the Dashboard configuration. The field should not be passed during dashboard creation.", + "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" } }, diff --git a/recaptchaenterprise.cnrm.cloud.google.com/recaptchaenterprisekey_v1beta1.json b/recaptchaenterprise.cnrm.cloud.google.com/recaptchaenterprisekey_v1beta1.json index 7c6b4ee2..cce699a8 100644 --- a/recaptchaenterprise.cnrm.cloud.google.com/recaptchaenterprisekey_v1beta1.json +++ b/recaptchaenterprise.cnrm.cloud.google.com/recaptchaenterprisekey_v1beta1.json @@ -123,6 +123,25 @@ "type": "object", "additionalProperties": false }, + "wafSettings": { + "description": "Immutable. Settings specific to keys that can be used for WAF (Web Application Firewall).", + "properties": { + "wafFeature": { + "description": "Immutable. Supported WAF features. For more information, see https://cloud.google.com/recaptcha-enterprise/docs/usecase#comparison_of_features. Possible values: CHALLENGE_PAGE, SESSION_TOKEN, ACTION_TOKEN, EXPRESS", + "type": "string" + }, + "wafService": { + "description": "Immutable. The WAF service that uses this key. Possible values: CA, FASTLY", + "type": "string" + } + }, + "required": [ + "wafFeature", + "wafService" + ], + "type": "object", + "additionalProperties": false + }, "webSettings": { "description": "Settings for keys that can be used by websites.", "properties": { diff --git a/redis.cnrm.cloud.google.com/redisinstance_v1beta1.json b/redis.cnrm.cloud.google.com/redisinstance_v1beta1.json index a3306dd9..fe141b95 100644 --- a/redis.cnrm.cloud.google.com/redisinstance_v1beta1.json +++ b/redis.cnrm.cloud.google.com/redisinstance_v1beta1.json @@ -389,6 +389,17 @@ "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.", "type": "integer" }, + "observedState": { + "description": "The observed state of the underlying GCP resource.", + "properties": { + "authString": { + "description": "Output only. AUTH String set on the instance. This field will only be populated if auth_enabled is true.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, "persistenceIamIdentity": { "description": "Output only. Cloud IAM identity used by import / export operations\nto transfer data to/from Cloud Storage. Format is \"serviceAccount:\".\nThe value may change over time for a given instance so should be\nchecked before each import/export operation.", "type": "string" diff --git a/run.cnrm.cloud.google.com/runjob_v1beta1.json b/run.cnrm.cloud.google.com/runjob_v1beta1.json index fc55b3b5..6ae93d77 100644 --- a/run.cnrm.cloud.google.com/runjob_v1beta1.json +++ b/run.cnrm.cloud.google.com/runjob_v1beta1.json @@ -773,6 +773,56 @@ "vpcAccess": { "description": "VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.", "properties": { + "connectorRef": { + "description": "VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.", + "oneOf": [ + { + "not": { + "required": [ + "external" + ] + }, + "required": [ + "name" + ] + }, + { + "not": { + "anyOf": [ + { + "required": [ + "name" + ] + }, + { + "required": [ + "namespace" + ] + } + ] + }, + "required": [ + "external" + ] + } + ], + "properties": { + "external": { + "description": "Allowed value: The `selfLink` field of a `VPCAccessConnector` resource.", + "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", + "additionalProperties": false + }, "egress": { "description": "Traffic VPC egress settings. Possible values: [\"ALL_TRAFFIC\", \"PRIVATE_RANGES_ONLY\"].", "type": "string" diff --git a/secretmanager.cnrm.cloud.google.com/secretmanagersecret_v1beta1.json b/secretmanager.cnrm.cloud.google.com/secretmanagersecret_v1beta1.json index df7e0a03..9921a093 100644 --- a/secretmanager.cnrm.cloud.google.com/secretmanagersecret_v1beta1.json +++ b/secretmanager.cnrm.cloud.google.com/secretmanagersecret_v1beta1.json @@ -95,7 +95,7 @@ "additionalProperties": false }, "automatic": { - "description": "DEPRECATED. `automatic` is deprecated. Use `auto` instead. The Secret will automatically be replicated without any restrictions.", + "description": "The Secret will automatically be replicated without any restrictions.", "type": "boolean" }, "userManaged": { diff --git a/sql.cnrm.cloud.google.com/sqlinstance_v1beta1.json b/sql.cnrm.cloud.google.com/sqlinstance_v1beta1.json index 470f4c3b..7ccc063a 100644 --- a/sql.cnrm.cloud.google.com/sqlinstance_v1beta1.json +++ b/sql.cnrm.cloud.google.com/sqlinstance_v1beta1.json @@ -610,6 +610,10 @@ }, "requireSsl": { "type": "boolean" + }, + "sslMode": { + "description": "Specify how SSL connection should be enforced in DB connections. This field provides more SSL enforcment options compared to requireSsl. To change this field, also set the correspoding value in requireSsl if it has been set.", + "type": "string" } }, "type": "object", diff --git a/storage.cnrm.cloud.google.com/storagebucket_v1beta1.json b/storage.cnrm.cloud.google.com/storagebucket_v1beta1.json index 71fb7d6a..7c4829e4 100644 --- a/storage.cnrm.cloud.google.com/storagebucket_v1beta1.json +++ b/storage.cnrm.cloud.google.com/storagebucket_v1beta1.json @@ -291,6 +291,17 @@ "type": "object", "additionalProperties": false }, + "softDeletePolicy": { + "description": "The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy.", + "properties": { + "retentionDurationSeconds": { + "description": "The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800.", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, "storageClass": { "description": "The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.", "type": "string" @@ -368,6 +379,28 @@ "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.", "type": "integer" }, + "observedState": { + "description": "The observed state of the underlying GCP resource.", + "properties": { + "softDeletePolicy": { + "description": "The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy.", + "properties": { + "effectiveTime": { + "description": "Server-determined value that indicates the time from which the policy, or one with a greater retention, was effective. This value is in RFC 3339 format.", + "type": "string" + }, + "retentionDurationSeconds": { + "description": "The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800.", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, "selfLink": { "description": "The URI of the created resource.", "type": "string"