{
  "description": "Audit is a type to store violations of a constraint.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "description": "Spec is the custom resource spec.",
      "type": [
        "object",
        "null"
      ]
    },
    "status": {
      "additionalProperties": false,
      "description": "Status is the custom resource status.",
      "properties": {
        "fleetSize": {
          "description": "FleetSize is the total number of objects that the constraint validates.",
          "type": [
            "integer",
            "null"
          ]
        },
        "hasViolation": {
          "description": "HasViolation indicates if the corresponding constraint has any violations.",
          "type": "boolean"
        },
        "lastSync": {
          "description": "LastSync shows the last time that this object was synced by the controller.",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "truncated": {
          "description": "Truncated indicates the number of violations is truncated to fit the resource size limitations.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "violationCount": {
          "description": "ViolationCount is the total number of violations. It may be larger than the size of Violations which could be truncated.",
          "type": [
            "integer",
            "null"
          ]
        },
        "violations": {
          "description": "Violations is the list of all violations for this constraint.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "action": {
                "description": "ViolationAction is a type for the action that is taken for the reported violation.",
                "type": "string"
              },
              "apiVersion": {
                "description": "API version of the referent.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "fieldPath": {
                "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "kind": {
                "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
                "type": [
                  "string",
                  "null"
                ]
              },
              "messages": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "name": {
                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                "type": [
                  "string",
                  "null"
                ]
              },
              "namespace": {
                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                "type": [
                  "string",
                  "null"
                ]
              },
              "resourceVersion": {
                "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
                "type": [
                  "string",
                  "null"
                ]
              },
              "uid": {
                "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "action",
              "messages"
            ],
            "type": "object",
            "x-kubernetes-map-type": "atomic"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "required": [
        "hasViolation"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}