{
  "description": "ClusterConfiguration is the Schema for the clusterconfigurations API",
  "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"
    },
    "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"
    },
    "metadata": {
      "type": "object"
    },
    "status": {
      "description": "ClusterConfigurationStatus defines the observed state of ClusterConfiguration",
      "properties": {
        "clusterProfileResources": {
          "description": "ClusterProfileResources is the list of resources currently deployed in a Cluster due\nto ClusterProfiles",
          "items": {
            "description": "ClusterProfileResource keeps info on all of the resources deployed in this Cluster\ndue to a given ClusterProfile",
            "properties": {
              "Features": {
                "description": "Features contains the list of policies deployed in the Cluster because\nof a given feature",
                "items": {
                  "properties": {
                    "charts": {
                      "description": "Charts is a list of helm charts deployed in the Cluster.",
                      "items": {
                        "properties": {
                          "appVersion": {
                            "description": "AppVersion is the version of the app deployed in the Cluster.",
                            "type": "string"
                          },
                          "chartVersion": {
                            "description": "ChartVersion is the version of the helm chart deployed in the Cluster.",
                            "type": "string"
                          },
                          "icon": {
                            "description": "The URL to an icon file.",
                            "type": "string"
                          },
                          "lastAppliedTime": {
                            "description": "LastAppliedTime identifies when this resource was last applied to the cluster.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace where chart is deployed in the Cluster.",
                            "type": "string"
                          },
                          "releaseName": {
                            "description": "ReleaseName name of the release deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          },
                          "repoURL": {
                            "description": "RepoURL URL of the repo containing the helm chart deployed\nin the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "chartVersion",
                          "lastAppliedTime",
                          "releaseName",
                          "repoURL"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "featureID": {
                      "description": "FeatureID is an indentifier of the feature whose status is reported",
                      "enum": [
                        "Resources",
                        "Helm",
                        "Kustomize"
                      ],
                      "type": "string"
                    },
                    "resources": {
                      "description": "Resources is a list of resources deployed in the Cluster.",
                      "items": {
                        "properties": {
                          "deploymentType": {
                            "default": "Remote",
                            "description": "DeploymentType indicates whether resources is deployed\ninto the management cluster (local) or the managed cluster (remote)",
                            "enum": [
                              "Local",
                              "Remote"
                            ],
                            "type": "string"
                          },
                          "group": {
                            "description": "Group of the resource deployed in the Cluster.",
                            "type": "string"
                          },
                          "kind": {
                            "description": "Kind of the resource deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          },
                          "lastAppliedTime": {
                            "description": "LastAppliedTime identifies when this resource was last applied to the cluster.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the resource deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace of the resource deployed in the Cluster.\nEmpty for resources scoped at cluster level.",
                            "type": "string"
                          },
                          "version": {
                            "description": "Version of the resource deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "group",
                          "kind",
                          "name",
                          "version"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "featureID"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "clusterProfileName": {
                "description": "ProfileName is the name of the ClusterProfile matching the Cluster.",
                "type": "string"
              }
            },
            "required": [
              "clusterProfileName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "profileResources": {
          "description": "ProfileResources is the list of resources currently deployed in a Cluster due\nto Profiles",
          "items": {
            "description": "ProfileResource keeps info on all of the resources deployed in this Cluster\ndue to a given Profile",
            "properties": {
              "Features": {
                "description": "Features contains the list of policies deployed in the Cluster because\nof a given feature",
                "items": {
                  "properties": {
                    "charts": {
                      "description": "Charts is a list of helm charts deployed in the Cluster.",
                      "items": {
                        "properties": {
                          "appVersion": {
                            "description": "AppVersion is the version of the app deployed in the Cluster.",
                            "type": "string"
                          },
                          "chartVersion": {
                            "description": "ChartVersion is the version of the helm chart deployed in the Cluster.",
                            "type": "string"
                          },
                          "icon": {
                            "description": "The URL to an icon file.",
                            "type": "string"
                          },
                          "lastAppliedTime": {
                            "description": "LastAppliedTime identifies when this resource was last applied to the cluster.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace where chart is deployed in the Cluster.",
                            "type": "string"
                          },
                          "releaseName": {
                            "description": "ReleaseName name of the release deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          },
                          "repoURL": {
                            "description": "RepoURL URL of the repo containing the helm chart deployed\nin the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "chartVersion",
                          "lastAppliedTime",
                          "releaseName",
                          "repoURL"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "featureID": {
                      "description": "FeatureID is an indentifier of the feature whose status is reported",
                      "enum": [
                        "Resources",
                        "Helm",
                        "Kustomize"
                      ],
                      "type": "string"
                    },
                    "resources": {
                      "description": "Resources is a list of resources deployed in the Cluster.",
                      "items": {
                        "properties": {
                          "deploymentType": {
                            "default": "Remote",
                            "description": "DeploymentType indicates whether resources is deployed\ninto the management cluster (local) or the managed cluster (remote)",
                            "enum": [
                              "Local",
                              "Remote"
                            ],
                            "type": "string"
                          },
                          "group": {
                            "description": "Group of the resource deployed in the Cluster.",
                            "type": "string"
                          },
                          "kind": {
                            "description": "Kind of the resource deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          },
                          "lastAppliedTime": {
                            "description": "LastAppliedTime identifies when this resource was last applied to the cluster.",
                            "format": "date-time",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the resource deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace of the resource deployed in the Cluster.\nEmpty for resources scoped at cluster level.",
                            "type": "string"
                          },
                          "version": {
                            "description": "Version of the resource deployed in the Cluster.",
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "group",
                          "kind",
                          "name",
                          "version"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "featureID"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "profileName": {
                "description": "ProfileName is the name of the Profile matching the Cluster.",
                "type": "string"
              }
            },
            "required": [
              "profileName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
