diff --git a/README.md b/README.md
index 9ed7fa9..1f9c4c7 100644
--- a/README.md
+++ b/README.md
@@ -102,6 +102,7 @@ The following is a list of projects that produce or consume policy reports:
* [Nirmata Control Hub](https://nirmata.com/nirmata-control-hub/)
* [Open Cluster Management](https://open-cluster-management.io/)
* [SUSE Rancher](https://github.com/rancher/rancher)
+* [Dynatrace (via an OpenTelemetry Collector)](https://docs.dynatrace.com/docs/secure/threat-observability/security-events-ingest/ingest-kyverno-data)
## Building
diff --git a/docs/api-docs.md b/docs/api-docs.md
index 30ab92a..d246d89 100644
--- a/docs/api-docs.md
+++ b/docs/api-docs.md
@@ -32,12 +32,12 @@ _Appears in:_
| `apiVersion` _string_ | `openreports.io/v1alpha1` | | |
| `kind` _string_ | `ClusterReport` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `source` _string_ | Source is an identifier for the source e.g. a policy engine that manages this report.
Use this field if all the results are produced by a single policy engine.
If the results are produced by multiple sources e.g. different engines or scanners,
then use the Source field at the ReportResult level. | | |
-| `scope` _[ObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectreference-v1-core)_ | Scope is an optional reference to the report scope (e.g. a Deployment, Namespace, or Node) | | |
-| `scopeSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta)_ | ScopeSelector is an optional selector for multiple scopes (e.g. Pods).
Either one of, or none of, but not both of, Scope or ScopeSelector should be specified. | | |
-| `configuration` _[ReportConfiguration](#reportconfiguration)_ | Configuration is an optional field which can be used to specify
a contract between Report generators and consumers | | |
-| `summary` _[ReportSummary](#reportsummary)_ | ReportSummary provides a summary of results | | |
-| `results` _[ReportResult](#reportresult) array_ | ReportResult provides result details | | |
+| `source` _string_ | Source is an identifier for the source e.g. a policy engine that manages this report.
Use this field if all the results are produced by a single policy engine.
If the results are produced by multiple sources e.g. different engines or scanners,
then use the Source field at the ReportResult level. | | Optional: \{\}
|
+| `scope` _[ObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectreference-v1-core)_ | Scope is an optional reference to the report scope (e.g. a Deployment, Namespace, or Node) | | Optional: \{\}
|
+| `scopeSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta)_ | ScopeSelector is an optional selector for multiple scopes (e.g. Pods).
Either one of, or none of, but not both of, Scope or ScopeSelector should be specified. | | Optional: \{\}
|
+| `configuration` _[ReportConfiguration](#reportconfiguration)_ | Configuration is an optional field which can be used to specify
a contract between Report generators and consumers | | Optional: \{\}
|
+| `summary` _[ReportSummary](#reportsummary)_ | ReportSummary provides a summary of results | | Optional: \{\}
|
+| `results` _[ReportResult](#reportresult) array_ | ReportResult provides result details | | Optional: \{\}
|
#### ClusterReportList
@@ -71,8 +71,8 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `maxResults` _integer_ | MaxResults is the maximum number of results contained in the report | | |
-| `statusFilter` _[StatusFilter](#statusfilter) array_ | StatusFilter indicates that the Report contains only those reports with statuses specified in this list | | Enum: [pass fail warn error skip]
|
+| `maxResults` _integer_ | MaxResults is the maximum number of results contained in the report | | Optional: \{\}
|
+| `statusFilter` _[StatusFilter](#statusfilter) array_ | StatusFilter indicates that the Report contains only those reports with statuses specified in this list | | Enum: [pass fail warn error skip]
Optional: \{\}
|
#### Report
@@ -91,12 +91,12 @@ _Appears in:_
| `apiVersion` _string_ | `openreports.io/v1alpha1` | | |
| `kind` _string_ | `Report` | | |
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
-| `source` _string_ | Source is an identifier for the source e.g. a policy engine that manages this report.
Use this field if all the results are produced by a single policy engine.
If the results are produced by multiple sources e.g. different engines or scanners,
then use the Source field at the ReportResult level. | | |
-| `scope` _[ObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectreference-v1-core)_ | Scope is an optional reference to the report scope (e.g. a Deployment, Namespace, or Node) | | |
-| `scopeSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta)_ | ScopeSelector is an optional selector for multiple scopes (e.g. Pods).
Either one of, or none of, but not both of, Scope or ScopeSelector should be specified. | | |
-| `configuration` _[ReportConfiguration](#reportconfiguration)_ | Configuration is an optional field which can be used to specify
a contract between Report generators and consumers | | |
-| `summary` _[ReportSummary](#reportsummary)_ | ReportSummary provides a summary of results | | |
-| `results` _[ReportResult](#reportresult) array_ | ReportResult provides result details | | |
+| `source` _string_ | Source is an identifier for the source e.g. a policy engine that manages this report.
Use this field if all the results are produced by a single policy engine.
If the results are produced by multiple sources e.g. different engines or scanners,
then use the Source field at the ReportResult level. | | Optional: \{\}
|
+| `scope` _[ObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectreference-v1-core)_ | Scope is an optional reference to the report scope (e.g. a Deployment, Namespace, or Node) | | Optional: \{\}
|
+| `scopeSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta)_ | ScopeSelector is an optional selector for multiple scopes (e.g. Pods).
Either one of, or none of, but not both of, Scope or ScopeSelector should be specified. | | Optional: \{\}
|
+| `configuration` _[ReportConfiguration](#reportconfiguration)_ | Configuration is an optional field which can be used to specify
a contract between Report generators and consumers | | Optional: \{\}
|
+| `summary` _[ReportSummary](#reportsummary)_ | ReportSummary provides a summary of results | | Optional: \{\}
|
+| `results` _[ReportResult](#reportresult) array_ | ReportResult provides result details | | Optional: \{\}
|
#### ReportConfiguration
@@ -148,16 +148,16 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `source` _string_ | Source is an identifier for the policy engine that manages this report
If the Source is specified at this level, it will override the Source
field set at the Report level | | |
+| `source` _string_ | Source is an identifier for the policy engine that manages this report
If the Source is specified at this level, it will override the Source
field set at the Report level | | Optional: \{\}
|
| `policy` _string_ | Policy is the name or identifier of the policy | | |
-| `rule` _string_ | Rule is the name or identifier of the rule within the policy | | |
-| `category` _string_ | Category indicates policy category | | |
-| `severity` _[ResultSeverity](#resultseverity)_ | Severity indicates policy check result criticality | | Enum: [critical high low medium info]
|
+| `rule` _string_ | Rule is the name or identifier of the rule within the policy | | Optional: \{\}
|
+| `category` _string_ | Category indicates policy category | | Optional: \{\}
|
+| `severity` _[ResultSeverity](#resultseverity)_ | Severity indicates policy check result criticality | | Enum: [critical high low medium info]
Optional: \{\}
|
| `timestamp` _[Timestamp](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#timestamp-v1-meta)_ | Timestamp indicates the time the result was found | | |
| `result` _[Result](#result)_ | Result indicates the outcome of the policy rule execution | | Enum: [pass fail warn error skip]
|
| `scored` _boolean_ | Scored indicates if this result is scored | | |
-| `resources` _[ObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectreference-v1-core) array_ | Subjects is an optional reference to the checked Kubernetes resources | | |
-| `resourceSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta)_ | ResourceSelector is an optional label selector for checked Kubernetes resources.
For example, a policy result may apply to all pods that match a label.
Either a Subject or a ResourceSelector can be specified. If neither are provided, the
result is assumed to be for the policy report scope. | | |
+| `resources` _[ObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectreference-v1-core) array_ | Subjects is an optional reference to the checked Kubernetes resources | | Optional: \{\}
|
+| `resourceSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#labelselector-v1-meta)_ | ResourceSelector is an optional label selector for checked Kubernetes resources.
For example, a policy result may apply to all pods that match a label.
Either a Subject or a ResourceSelector can be specified. If neither are provided, the
result is assumed to be for the policy report scope. | | Optional: \{\}
|
| `message` _string_ | Description is a short user friendly message for the policy rule | | |
| `properties` _object (keys:string, values:string)_ | Properties provides additional information for the policy rule | | |
@@ -176,11 +176,11 @@ _Appears in:_
| Field | Description | Default | Validation |
| --- | --- | --- | --- |
-| `pass` _integer_ | Pass provides the count of policies whose requirements were met | | |
-| `fail` _integer_ | Fail provides the count of policies whose requirements were not met | | |
-| `warn` _integer_ | Warn provides the count of non-scored policies whose requirements were not met | | |
-| `error` _integer_ | Error provides the count of policies that could not be evaluated | | |
-| `skip` _integer_ | Skip indicates the count of policies that were not selected for evaluation | | |
+| `pass` _integer_ | Pass provides the count of policies whose requirements were met | | Optional: \{\}
|
+| `fail` _integer_ | Fail provides the count of policies whose requirements were not met | | Optional: \{\}
|
+| `warn` _integer_ | Warn provides the count of non-scored policies whose requirements were not met | | Optional: \{\}
|
+| `error` _integer_ | Error provides the count of policies that could not be evaluated | | Optional: \{\}
|
+| `skip` _integer_ | Skip indicates the count of policies that were not selected for evaluation | | Optional: \{\}
|
#### Result