{
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "BackupRepositorySpec is the specification for a BackupRepository.",
      "properties": {
        "backupStorageLocation": {
          "description": "BackupStorageLocation is the name of the BackupStorageLocation\nthat should contain this repository.",
          "type": "string"
        },
        "maintenanceFrequency": {
          "description": "MaintenanceFrequency is how often maintenance should be run.",
          "type": "string"
        },
        "repositoryConfig": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "RepositoryConfig is for repository-specific configuration fields.",
          "nullable": true,
          "type": [
            "object",
            "null"
          ]
        },
        "repositoryType": {
          "description": "RepositoryType indicates the type of the backend repository",
          "enum": [
            "kopia",
            "restic",
            ""
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "resticIdentifier": {
          "description": "ResticIdentifier is the full restic-compatible string for identifying\nthis repository. This field is only used when RepositoryType is \"restic\".",
          "type": [
            "string",
            "null"
          ]
        },
        "volumeNamespace": {
          "description": "VolumeNamespace is the namespace this backup repository contains\npod volume backups for.",
          "type": "string"
        }
      },
      "required": [
        "backupStorageLocation",
        "maintenanceFrequency",
        "volumeNamespace"
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "status": {
      "additionalProperties": false,
      "description": "BackupRepositoryStatus is the current status of a BackupRepository.",
      "properties": {
        "lastMaintenanceTime": {
          "description": "LastMaintenanceTime is the last time repo maintenance succeeded.",
          "format": "date-time",
          "nullable": true,
          "type": [
            "string",
            "null"
          ]
        },
        "message": {
          "description": "Message is a message about the current status of the BackupRepository.",
          "type": [
            "string",
            "null"
          ]
        },
        "phase": {
          "description": "Phase is the current state of the BackupRepository.",
          "enum": [
            "New",
            "Ready",
            "NotReady"
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "recentMaintenance": {
          "description": "RecentMaintenance is status of the recent repo maintenance.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "completeTimestamp": {
                "description": "CompleteTimestamp is the completion time of the repo maintenance.",
                "format": "date-time",
                "nullable": true,
                "type": [
                  "string",
                  "null"
                ]
              },
              "message": {
                "description": "Message is a message about the current status of the repo maintenance.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "result": {
                "description": "Result is the result of the repo maintenance.",
                "enum": [
                  "Succeeded",
                  "Failed"
                ],
                "type": [
                  "string",
                  "null"
                ]
              },
              "startTimestamp": {
                "description": "StartTimestamp is the start time of the repo maintenance.",
                "format": "date-time",
                "nullable": true,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        }
      },
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}