- [JSON representation](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#SCHEMA_REPRESENTATION)
- [BaseMetric](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#BaseMetric)
  - [JSON representation](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#BaseMetric.SCHEMA_REPRESENTATION)
- [StandardMetric](https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#StandardMetric)

Defines a specific metric to query, including a user-defined name, the base metric type, and optional filters.

| JSON representation |
|---|
| ``` { "name": string, "baseMetric": { object (`https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#BaseMetric`) }, "filter": string } ``` |

| Fields ||
|---|---|
| `name` | `string` Required. The user-defined name for this metric. This name will be used as the key for this metric's value in the response. |
| `baseMetric` | ``object (`https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#BaseMetric`)`` Required. The underlying metric to query. |
| `filter` | `string` Optional. Optional filters to apply to the metric. |

## BaseMetric

Specifies the base metric to query, which can be a predefined standard metric or a user-defined custom metric (if supported in the future).

| JSON representation |
|---|
| ``` { "standardMetric": enum (`https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#StandardMetric`) } ``` |

| Fields ||
|---|---|
| Union field `metric`. The specific metric to query. `metric` can be only one of the following: ||
| `standardMetric` | ``enum (`https://developers.google.com/workspace/gmail/postmaster/reference/rest/v2beta/MetricDefinition#StandardMetric`)`` A predefined standard metric. |

## StandardMetric

Enumerates the predefined standard metrics that can be queried.

| Enums ||
|---|---|
| `STANDARD_METRIC_UNSPECIFIED` | Unspecified standard metric. This value should not be used directly. |
| `FEEDBACK_LOOP_ID` | Predefined metric for Feedback Loop (FBL) id. The `filter` field supports selecting the aggregation key type. Supported format: `aggregation_key_type` = "". Supported values: - `FROM_HEADER`: (Default) The metric includes messages with From: header domain matching the requested domain. - `ALL_DKIM`: The metric includes messages with one of the signed DKIM domains matching the requested domain. |
| `FEEDBACK_LOOP_SPAM_RATE` | Predefined metric for Feedback Loop (FBL) spam rate. The `filter` field requires a `feedback_loop_id` and optionally accepts an `aggregation_key_type`. Supported formats are: - `feedback_loop_id` = "" - `feedback_loop_id` = "" AND `aggregation_key_type` = "" If `aggregation_key_type` is omitted, it defaults to `FROM_HEADER`. Supported values: - `FROM_HEADER`: (Default) The metric includes messages with From: header domain matching the requested domain. - `ALL_DKIM`: The metric includes messages with one of the signed DKIM domains matching the requested domain. |
| `SPAM_RATE` | Predefined metric for spam rate. |
| `AUTH_SUCCESS_RATE` | The success rate of authentication mechanisms (DKIM, SPF, DMARC). Filter must be of type auth_type = "" where is one of: \[spf, dkim, dmarc\] |
| `TLS_ENCRYPTION_MESSAGE_COUNT` | The rate of messages that were TLS encrypted in transit Filter must be of type traffic_direction = "" where is one of: \[inbound, outbound\] |
| `TLS_ENCRYPTION_RATE` | The rate of messages that were TLS encrypted in transit Filter must be of type traffic_direction = "" where is one of: \[inbound, outbound\] |
| `DELIVERY_ERROR_COUNT` | The total count of delivery errors encountered (temporary or permanent rejects). The `filter` field supports a limited syntax. Supported formats are: - Empty: No filter is applied. - `error_type` = "" - `error_type` = "" AND `error_reason` = "" If an empty filter is provided, the metric will be aggregated across all error types and reasons. If only `error_type` is specified, the metric will be aggregated across all reasons for that type. Supported values: - reject - temp_fail Supported values depend on the : - For 'reject': \[bad_attachment, bad_or_missing_ptr_record, ip_in_rbls, low_domain_reputation, low_ip_reputation, spammy_content, stamp_policy_error, other\] - For 'temp_fail': \[anomalous_traffic_pattern, other\] |
| `DELIVERY_ERROR_RATE` | Delivery error rate for the specified delivery error type. The `filter` field supports a limited syntax. Supported formats are: - Empty: No filter is applied. - `error_type` = "" - `error_type` = "" AND `error_reason` = "" If an empty filter is provided, the metric will be aggregated across all error types and reasons. If only `error_type` is specified, the metric will be aggregated across all reasons for that type. Supported values: - reject - temp_fail Supported values depend on the : - For 'reject': \[bad_attachment, bad_or_missing_ptr_record, ip_in_rbls, low_domain_reputation, low_ip_reputation, spammy_content, stamp_policy_error, other\] - For 'temp_fail': \[anomalous_traffic_pattern, other\] |