{
  "properties": {
    "spec": {
      "additionalProperties": false,
      "oneOf": [
        {
          "required": [
            "http"
          ]
        },
        {
          "required": [
            "registry"
          ]
        },
        {
          "required": [
            "s3"
          ]
        },
        {
          "required": [
            "gcs"
          ]
        },
        {
          "required": [
            "pvc"
          ]
        }
      ],
      "properties": {
        "credentials": {
          "type": [
            "string",
            "null"
          ]
        },
        "gcs": {
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "http": {
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "pvc": {
          "additionalProperties": false,
          "properties": {
            "name": {
              "type": [
                "string",
                "null"
              ]
            },
            "namespace": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "readableDescription": {
          "type": [
            "string",
            "null"
          ]
        },
        "readableName": {
          "type": "string"
        },
        "registry": {
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "s3": {
          "additionalProperties": false,
          "properties": {
            "url": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "readableName"
      ],
      "type": "object",
      "x-kubernetes-validations": [
        {
          "message": "spec.type should be: http, registry, s3, gcs, pvc",
          "rule": "self.type.matches('^(http)|(gcs)|(s3)|(registry)|(pvc)$')"
        }
      ]
    }
  },
  "type": "object"
}