-- out/import/argocd/cluster-role.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	rbacv1 "k8s.io/api/rbac/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var ApplicationControllerCR = &rbacv1.ClusterRole{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "application-controller",
			"app.kubernetes.io/name":      "argocd-application-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-application-controller",
	},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{"*"},
		Resources: []string{"*"},
		Verbs:     []string{"*"},
	}, rbacv1.PolicyRule{
		NonResourceURLs: []string{"*"},
		Verbs:           []string{"*"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "ClusterRole",
	},
}

var ServerCR = &rbacv1.ClusterRole{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{"*"},
		Resources: []string{"*"},
		Verbs:     []string{"delete", "get", "patch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"events"},
		Verbs:     []string{"list"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"pods", "pods/log"},
		Verbs:     []string{"get"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"applications"},
		Verbs:     []string{"get", "list", "watch"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "ClusterRole",
	},
}
-- out/import/argocd/cluster-role-binding.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	rbacv1 "k8s.io/api/rbac/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var ApplicationControllerCRB = &rbacv1.ClusterRoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "application-controller",
			"app.kubernetes.io/name":      "argocd-application-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-application-controller",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "ClusterRole",
		Name:     "argocd-application-controller",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind:      "ServiceAccount",
		Name:      "argocd-application-controller",
		Namespace: "argocd",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "ClusterRoleBinding",
	},
}

var ServerCRB = &rbacv1.ClusterRoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "ClusterRole",
		Name:     "argocd-server",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind:      "ServiceAccount",
		Name:      "argocd-server",
		Namespace: "argocd",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "ClusterRoleBinding",
	},
}
-- out/import/argocd/config-map.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var CM = &corev1.ConfigMap{
	Data: nil,
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-cm",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-cm",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}

var CmdParamsCM = &corev1.ConfigMap{
	Data: nil,
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-cmd-params-cm",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-cmd-params-cm",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}

var GpgKeysCM = &corev1.ConfigMap{
	Data: nil,
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-gpg-keys-cm",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-gpg-keys-cm",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}

var NotificationsCM = &corev1.ConfigMap{
	Data:       nil,
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-notifications-cm"},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}

var RbacCM = &corev1.ConfigMap{
	Data: nil,
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-rbac-cm",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-rbac-cm",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}

var SshKnownHostsCM = &corev1.ConfigMap{
	Data: map[string]string{
		"ssh_known_hosts": `bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl`},
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-ssh-known-hosts-cm",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-ssh-known-hosts-cm",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}

var TlsCertsCM = &corev1.ConfigMap{
	Data: nil,
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-tls-certs-cm",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-tls-certs-cm",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ConfigMap",
	},
}
-- out/import/argocd/custom-resource-definition.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var ApplicationsArgoprojIoCRD = &apiextensionsv1.CustomResourceDefinition{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "applications.argoproj.io",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "applications.argoproj.io",
	},
	Spec: apiextensionsv1.CustomResourceDefinitionSpec{
		Group: "argoproj.io",
		Names: apiextensionsv1.CustomResourceDefinitionNames{
			Kind:       "Application",
			ListKind:   "ApplicationList",
			Plural:     "applications",
			ShortNames: []string{"app", "apps"},
			Singular:   "application",
		},
		Scope: apiextensionsv1.ResourceScope("Namespaced"),
		Versions: []apiextensionsv1.CustomResourceDefinitionVersion{apiextensionsv1.CustomResourceDefinitionVersion{
			AdditionalPrinterColumns: []apiextensionsv1.CustomResourceColumnDefinition{apiextensionsv1.CustomResourceColumnDefinition{
				JSONPath: ".status.sync.status",
				Name:     "Sync Status",
				Type:     "string",
			}, apiextensionsv1.CustomResourceColumnDefinition{
				JSONPath: ".status.health.status",
				Name:     "Health Status",
				Type:     "string",
			}, apiextensionsv1.CustomResourceColumnDefinition{
				JSONPath: ".status.sync.revision",
				Name:     "Revision",
				Priority: int32(10),
				Type:     "string",
			}},
			Name: "v1alpha1",
			Schema: &apiextensionsv1.CustomResourceValidation{OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{
				Description: "Application is a definition of Application resource.",
				Properties: map[string]apiextensionsv1.JSONSchemaProps{
					"apiVersion": apiextensionsv1.JSONSchemaProps{
						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",
					},
					"kind": apiextensionsv1.JSONSchemaProps{
						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",
					},
					"metadata": apiextensionsv1.JSONSchemaProps{Type: "object"},
					"operation": apiextensionsv1.JSONSchemaProps{
						Description: "Operation contains information about a requested or running operation",
						Properties: map[string]apiextensionsv1.JSONSchemaProps{
							"info": apiextensionsv1.JSONSchemaProps{
								Description: "Info is a list of informational items for this operation",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"name", "value"},
									Type:     "object",
								}},
								Type: "array",
							},
							"initiatedBy": apiextensionsv1.JSONSchemaProps{
								Description: "InitiatedBy contains information about who initiated the operations",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"automated": apiextensionsv1.JSONSchemaProps{
										Description: "Automated is set to true if operation was initiated automatically by the application controller.",
										Type:        "boolean",
									},
									"username": apiextensionsv1.JSONSchemaProps{
										Description: "Username contains the name of a user who started operation",
										Type:        "string",
									},
								},
								Type: "object",
							},
							"retry": apiextensionsv1.JSONSchemaProps{
								Description: "Retry controls the strategy to apply if a sync fails",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"backoff": apiextensionsv1.JSONSchemaProps{
										Description: "Backoff controls how to backoff on subsequent retries of failed syncs",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"duration": apiextensionsv1.JSONSchemaProps{
												Description: `Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")`,
												Type:        "string",
											},
											"factor": apiextensionsv1.JSONSchemaProps{
												Description: "Factor is a factor to multiply the base duration after each failed retry",
												Format:      "int64",
												Type:        "integer",
											},
											"maxDuration": apiextensionsv1.JSONSchemaProps{
												Description: "MaxDuration is the maximum amount of time allowed for the backoff strategy",
												Type:        "string",
											},
										},
										Type: "object",
									},
									"limit": apiextensionsv1.JSONSchemaProps{
										Description: "Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.",
										Format:      "int64",
										Type:        "integer",
									},
								},
								Type: "object",
							},
							"sync": apiextensionsv1.JSONSchemaProps{
								Description: "Sync contains parameters for the operation",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"dryRun": apiextensionsv1.JSONSchemaProps{
										Description: "DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync",
										Type:        "boolean",
									},
									"manifests": apiextensionsv1.JSONSchemaProps{
										Description: "Manifests is an optional field that overrides sync source with a local directory for development",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
									"prune": apiextensionsv1.JSONSchemaProps{
										Description: "Prune specifies to delete resources from the cluster that are no longer tracked in git",
										Type:        "boolean",
									},
									"resources": apiextensionsv1.JSONSchemaProps{
										Description: "Resources describes which resources shall be part of the sync",
										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
											Description: "SyncOperationResource contains resources to sync.",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"group":     apiextensionsv1.JSONSchemaProps{Type: "string"},
												"kind":      apiextensionsv1.JSONSchemaProps{Type: "string"},
												"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
												"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
											},
											Required: []string{"kind", "name"},
											Type:     "object",
										}},
										Type: "array",
									},
									"revision": apiextensionsv1.JSONSchemaProps{
										Description: "Revision is the revision (Git) or chart version (Helm) which to sync the application to If omitted, will use the revision specified in app spec.",
										Type:        "string",
									},
									"revisions": apiextensionsv1.JSONSchemaProps{
										Description: "Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to If omitted, will use the revision specified in app spec.",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
									"source": apiextensionsv1.JSONSchemaProps{
										Description: "Source overrides the source definition set in the application. This is typically set in a Rollback operation and is nil during a Sync operation",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"chart": apiextensionsv1.JSONSchemaProps{
												Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
												Type:        "string",
											},
											"directory": apiextensionsv1.JSONSchemaProps{
												Description: "Directory holds path/directory specific options",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"exclude": apiextensionsv1.JSONSchemaProps{
														Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
														Type:        "string",
													},
													"include": apiextensionsv1.JSONSchemaProps{
														Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
														Type:        "string",
													},
													"jsonnet": apiextensionsv1.JSONSchemaProps{
														Description: "Jsonnet holds options specific to Jsonnet",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"extVars": apiextensionsv1.JSONSchemaProps{
																Description: "ExtVars is a list of Jsonnet External Variables",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																		"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"name", "value"},
																	Type:     "object",
																}},
																Type: "array",
															},
															"libs": apiextensionsv1.JSONSchemaProps{
																Description: "Additional library search dirs",
																Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:        "array",
															},
															"tlas": apiextensionsv1.JSONSchemaProps{
																Description: "TLAS is a list of Jsonnet Top-level Arguments",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																		"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"name", "value"},
																	Type:     "object",
																}},
																Type: "array",
															},
														},
														Type: "object",
													},
													"recurse": apiextensionsv1.JSONSchemaProps{
														Description: "Recurse specifies whether to scan a directory recursively for manifests",
														Type:        "boolean",
													},
												},
												Type: "object",
											},
											"helm": apiextensionsv1.JSONSchemaProps{
												Description: "Helm holds helm specific options",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"fileParameters": apiextensionsv1.JSONSchemaProps{
														Description: "FileParameters are file parameters to the helm template",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"name": apiextensionsv1.JSONSchemaProps{
																	Description: "Name is the name of the Helm parameter",
																	Type:        "string",
																},
																"path": apiextensionsv1.JSONSchemaProps{
																	Description: "Path is the path to the file containing the values for the Helm parameter",
																	Type:        "string",
																},
															},
															Type: "object",
														}},
														Type: "array",
													},
													"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
														Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
														Type:        "boolean",
													},
													"parameters": apiextensionsv1.JSONSchemaProps{
														Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"forceString": apiextensionsv1.JSONSchemaProps{
																	Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																	Type:        "boolean",
																},
																"name": apiextensionsv1.JSONSchemaProps{
																	Description: "Name is the name of the Helm parameter",
																	Type:        "string",
																},
																"value": apiextensionsv1.JSONSchemaProps{
																	Description: "Value is the value for the Helm parameter",
																	Type:        "string",
																},
															},
															Type: "object",
														}},
														Type: "array",
													},
													"passCredentials": apiextensionsv1.JSONSchemaProps{
														Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
														Type:        "boolean",
													},
													"releaseName": apiextensionsv1.JSONSchemaProps{
														Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
														Type:        "string",
													},
													"skipCrds": apiextensionsv1.JSONSchemaProps{
														Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
														Type:        "boolean",
													},
													"valueFiles": apiextensionsv1.JSONSchemaProps{
														Description: "ValuesFiles is a list of Helm value files to use when generating a template",
														Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:        "array",
													},
													"values": apiextensionsv1.JSONSchemaProps{
														Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
														Type:        "string",
													},
													"version": apiextensionsv1.JSONSchemaProps{
														Description: `Version is the Helm version to use for templating ("3")`,
														Type:        "string",
													},
												},
												Type: "object",
											},
											"kustomize": apiextensionsv1.JSONSchemaProps{
												Description: "Kustomize holds kustomize specific options",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"commonAnnotations": apiextensionsv1.JSONSchemaProps{
														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
															Allows: true,
															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
														},
														Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
														Type:        "object",
													},
													"commonLabels": apiextensionsv1.JSONSchemaProps{
														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
															Allows: true,
															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
														},
														Description: "CommonLabels is a list of additional labels to add to rendered manifests",
														Type:        "object",
													},
													"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
														Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
														Type:        "boolean",
													},
													"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
														Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
														Type:        "boolean",
													},
													"images": apiextensionsv1.JSONSchemaProps{
														Description: "Images is a list of Kustomize image override specifications",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
															Type:        "string",
														}},
														Type: "array",
													},
													"namePrefix": apiextensionsv1.JSONSchemaProps{
														Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
														Type:        "string",
													},
													"nameSuffix": apiextensionsv1.JSONSchemaProps{
														Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
														Type:        "string",
													},
													"version": apiextensionsv1.JSONSchemaProps{
														Description: "Version controls which version of Kustomize to use for rendering manifests",
														Type:        "string",
													},
												},
												Type: "object",
											},
											"path": apiextensionsv1.JSONSchemaProps{
												Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
												Type:        "string",
											},
											"plugin": apiextensionsv1.JSONSchemaProps{
												Description: "Plugin holds config management plugin specific options",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"env": apiextensionsv1.JSONSchemaProps{
														Description: "Env is a list of environment variable entries",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "EnvEntry represents an entry in the application's environment",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"name": apiextensionsv1.JSONSchemaProps{
																	Description: "Name is the name of the variable, usually expressed in uppercase",
																	Type:        "string",
																},
																"value": apiextensionsv1.JSONSchemaProps{
																	Description: "Value is the value of the variable",
																	Type:        "string",
																},
															},
															Required: []string{"name", "value"},
															Type:     "object",
														}},
														Type: "array",
													},
													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
													"parameters": apiextensionsv1.JSONSchemaProps{
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"array": apiextensionsv1.JSONSchemaProps{
																	Description: "Array is the value of an array type parameter.",
																	Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:        "array",
																},
																"map": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Description: "Map is the value of a map type parameter.",
																	Type:        "object",
																},
																"name": apiextensionsv1.JSONSchemaProps{
																	Description: "Name is the name identifying a parameter.",
																	Type:        "string",
																},
																"string": apiextensionsv1.JSONSchemaProps{
																	Description: "String_ is the value of a string type parameter.",
																	Type:        "string",
																},
															},
															Type: "object",
														}},
														Type: "array",
													},
												},
												Type: "object",
											},
											"ref": apiextensionsv1.JSONSchemaProps{
												Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
												Type:        "string",
											},
											"repoURL": apiextensionsv1.JSONSchemaProps{
												Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
												Type:        "string",
											},
											"targetRevision": apiextensionsv1.JSONSchemaProps{
												Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
												Type:        "string",
											},
										},
										Required: []string{"repoURL"},
										Type:     "object",
									},
									"sources": apiextensionsv1.JSONSchemaProps{
										Description: "Sources overrides the source definition set in the application. This is typically set in a Rollback operation and is nil during a Sync operation",
										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
											Description: "ApplicationSource contains all required information about the source of an application",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"chart": apiextensionsv1.JSONSchemaProps{
													Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
													Type:        "string",
												},
												"directory": apiextensionsv1.JSONSchemaProps{
													Description: "Directory holds path/directory specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"exclude": apiextensionsv1.JSONSchemaProps{
															Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
															Type:        "string",
														},
														"include": apiextensionsv1.JSONSchemaProps{
															Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
															Type:        "string",
														},
														"jsonnet": apiextensionsv1.JSONSchemaProps{
															Description: "Jsonnet holds options specific to Jsonnet",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"extVars": apiextensionsv1.JSONSchemaProps{
																	Description: "ExtVars is a list of Jsonnet External Variables",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"libs": apiextensionsv1.JSONSchemaProps{
																	Description: "Additional library search dirs",
																	Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:        "array",
																},
																"tlas": apiextensionsv1.JSONSchemaProps{
																	Description: "TLAS is a list of Jsonnet Top-level Arguments",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
															},
															Type: "object",
														},
														"recurse": apiextensionsv1.JSONSchemaProps{
															Description: "Recurse specifies whether to scan a directory recursively for manifests",
															Type:        "boolean",
														},
													},
													Type: "object",
												},
												"helm": apiextensionsv1.JSONSchemaProps{
													Description: "Helm holds helm specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"fileParameters": apiextensionsv1.JSONSchemaProps{
															Description: "FileParameters are file parameters to the helm template",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name of the Helm parameter",
																		Type:        "string",
																	},
																	"path": apiextensionsv1.JSONSchemaProps{
																		Description: "Path is the path to the file containing the values for the Helm parameter",
																		Type:        "string",
																	},
																},
																Type: "object",
															}},
															Type: "array",
														},
														"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
															Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
															Type:        "boolean",
														},
														"parameters": apiextensionsv1.JSONSchemaProps{
															Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"forceString": apiextensionsv1.JSONSchemaProps{
																		Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																		Type:        "boolean",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name of the Helm parameter",
																		Type:        "string",
																	},
																	"value": apiextensionsv1.JSONSchemaProps{
																		Description: "Value is the value for the Helm parameter",
																		Type:        "string",
																	},
																},
																Type: "object",
															}},
															Type: "array",
														},
														"passCredentials": apiextensionsv1.JSONSchemaProps{
															Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
															Type:        "boolean",
														},
														"releaseName": apiextensionsv1.JSONSchemaProps{
															Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
															Type:        "string",
														},
														"skipCrds": apiextensionsv1.JSONSchemaProps{
															Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
															Type:        "boolean",
														},
														"valueFiles": apiextensionsv1.JSONSchemaProps{
															Description: "ValuesFiles is a list of Helm value files to use when generating a template",
															Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:        "array",
														},
														"values": apiextensionsv1.JSONSchemaProps{
															Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
															Type:        "string",
														},
														"version": apiextensionsv1.JSONSchemaProps{
															Description: `Version is the Helm version to use for templating ("3")`,
															Type:        "string",
														},
													},
													Type: "object",
												},
												"kustomize": apiextensionsv1.JSONSchemaProps{
													Description: "Kustomize holds kustomize specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"commonAnnotations": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
															Type:        "object",
														},
														"commonLabels": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Description: "CommonLabels is a list of additional labels to add to rendered manifests",
															Type:        "object",
														},
														"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
															Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
															Type:        "boolean",
														},
														"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
															Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
															Type:        "boolean",
														},
														"images": apiextensionsv1.JSONSchemaProps{
															Description: "Images is a list of Kustomize image override specifications",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																Type:        "string",
															}},
															Type: "array",
														},
														"namePrefix": apiextensionsv1.JSONSchemaProps{
															Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
															Type:        "string",
														},
														"nameSuffix": apiextensionsv1.JSONSchemaProps{
															Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
															Type:        "string",
														},
														"version": apiextensionsv1.JSONSchemaProps{
															Description: "Version controls which version of Kustomize to use for rendering manifests",
															Type:        "string",
														},
													},
													Type: "object",
												},
												"path": apiextensionsv1.JSONSchemaProps{
													Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
													Type:        "string",
												},
												"plugin": apiextensionsv1.JSONSchemaProps{
													Description: "Plugin holds config management plugin specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"env": apiextensionsv1.JSONSchemaProps{
															Description: "Env is a list of environment variable entries",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "EnvEntry represents an entry in the application's environment",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name of the variable, usually expressed in uppercase",
																		Type:        "string",
																	},
																	"value": apiextensionsv1.JSONSchemaProps{
																		Description: "Value is the value of the variable",
																		Type:        "string",
																	},
																},
																Required: []string{"name", "value"},
																Type:     "object",
															}},
															Type: "array",
														},
														"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"parameters": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"array": apiextensionsv1.JSONSchemaProps{
																		Description: "Array is the value of an array type parameter.",
																		Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:        "array",
																	},
																	"map": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Description: "Map is the value of a map type parameter.",
																		Type:        "object",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name identifying a parameter.",
																		Type:        "string",
																	},
																	"string": apiextensionsv1.JSONSchemaProps{
																		Description: "String_ is the value of a string type parameter.",
																		Type:        "string",
																	},
																},
																Type: "object",
															}},
															Type: "array",
														},
													},
													Type: "object",
												},
												"ref": apiextensionsv1.JSONSchemaProps{
													Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
													Type:        "string",
												},
												"repoURL": apiextensionsv1.JSONSchemaProps{
													Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
													Type:        "string",
												},
												"targetRevision": apiextensionsv1.JSONSchemaProps{
													Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
													Type:        "string",
												},
											},
											Required: []string{"repoURL"},
											Type:     "object",
										}},
										Type: "array",
									},
									"syncOptions": apiextensionsv1.JSONSchemaProps{
										Description: "SyncOptions provide per-sync sync-options, e.g. Validate=false",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
									"syncStrategy": apiextensionsv1.JSONSchemaProps{
										Description: "SyncStrategy describes how to perform the sync",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"apply": apiextensionsv1.JSONSchemaProps{
												Description: "Apply will perform a `kubectl apply` to perform the sync.",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{"force": apiextensionsv1.JSONSchemaProps{
													Description: "Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.",
													Type:        "boolean",
												}},
												Type: "object",
											},
											"hook": apiextensionsv1.JSONSchemaProps{
												Description: "Hook will submit any referenced resources to perform the sync. This is the default strategy",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{"force": apiextensionsv1.JSONSchemaProps{
													Description: "Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.",
													Type:        "boolean",
												}},
												Type: "object",
											},
										},
										Type: "object",
									},
								},
								Type: "object",
							},
						},
						Type: "object",
					},
					"spec": apiextensionsv1.JSONSchemaProps{
						Description: "ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.",
						Properties: map[string]apiextensionsv1.JSONSchemaProps{
							"destination": apiextensionsv1.JSONSchemaProps{
								Description: "Destination is a reference to the target Kubernetes server and namespace",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"name": apiextensionsv1.JSONSchemaProps{
										Description: "Name is an alternate way of specifying the target cluster by its symbolic name",
										Type:        "string",
									},
									"namespace": apiextensionsv1.JSONSchemaProps{
										Description: "Namespace specifies the target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace",
										Type:        "string",
									},
									"server": apiextensionsv1.JSONSchemaProps{
										Description: "Server specifies the URL of the target cluster and must be set to the Kubernetes control plane API",
										Type:        "string",
									},
								},
								Type: "object",
							},
							"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
								Description: "IgnoreDifferences is a list of resources and their fields which should be ignored during comparison",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ResourceIgnoreDifferences contains resource filter and list of json paths which should be ignored during comparison with live state.",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:  "array",
										},
										"jsonPointers": apiextensionsv1.JSONSchemaProps{
											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:  "array",
										},
										"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
											Description: "ManagedFieldsManagers is a list of trusted managers. Fields mutated by those managers will take precedence over the desired state defined in the SCM and won't be displayed in diffs",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
										"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
										"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"kind"},
									Type:     "object",
								}},
								Type: "array",
							},
							"info": apiextensionsv1.JSONSchemaProps{
								Description: "Info contains a list of information (URLs, email addresses, and plain text) that relates to the application",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"name", "value"},
									Type:     "object",
								}},
								Type: "array",
							},
							"project": apiextensionsv1.JSONSchemaProps{
								Description: "Project is a reference to the project this application belongs to. The empty string means that application belongs to the 'default' project.",
								Type:        "string",
							},
							"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
								Description: "RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.",
								Format:      "int64",
								Type:        "integer",
							},
							"source": apiextensionsv1.JSONSchemaProps{
								Description: "Source is a reference to the location of the application's manifests or chart",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"chart": apiextensionsv1.JSONSchemaProps{
										Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
										Type:        "string",
									},
									"directory": apiextensionsv1.JSONSchemaProps{
										Description: "Directory holds path/directory specific options",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"exclude": apiextensionsv1.JSONSchemaProps{
												Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
												Type:        "string",
											},
											"include": apiextensionsv1.JSONSchemaProps{
												Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
												Type:        "string",
											},
											"jsonnet": apiextensionsv1.JSONSchemaProps{
												Description: "Jsonnet holds options specific to Jsonnet",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"extVars": apiextensionsv1.JSONSchemaProps{
														Description: "ExtVars is a list of Jsonnet External Variables",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"name", "value"},
															Type:     "object",
														}},
														Type: "array",
													},
													"libs": apiextensionsv1.JSONSchemaProps{
														Description: "Additional library search dirs",
														Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:        "array",
													},
													"tlas": apiextensionsv1.JSONSchemaProps{
														Description: "TLAS is a list of Jsonnet Top-level Arguments",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"name", "value"},
															Type:     "object",
														}},
														Type: "array",
													},
												},
												Type: "object",
											},
											"recurse": apiextensionsv1.JSONSchemaProps{
												Description: "Recurse specifies whether to scan a directory recursively for manifests",
												Type:        "boolean",
											},
										},
										Type: "object",
									},
									"helm": apiextensionsv1.JSONSchemaProps{
										Description: "Helm holds helm specific options",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"fileParameters": apiextensionsv1.JSONSchemaProps{
												Description: "FileParameters are file parameters to the helm template",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"name": apiextensionsv1.JSONSchemaProps{
															Description: "Name is the name of the Helm parameter",
															Type:        "string",
														},
														"path": apiextensionsv1.JSONSchemaProps{
															Description: "Path is the path to the file containing the values for the Helm parameter",
															Type:        "string",
														},
													},
													Type: "object",
												}},
												Type: "array",
											},
											"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
												Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
												Type:        "boolean",
											},
											"parameters": apiextensionsv1.JSONSchemaProps{
												Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"forceString": apiextensionsv1.JSONSchemaProps{
															Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
															Type:        "boolean",
														},
														"name": apiextensionsv1.JSONSchemaProps{
															Description: "Name is the name of the Helm parameter",
															Type:        "string",
														},
														"value": apiextensionsv1.JSONSchemaProps{
															Description: "Value is the value for the Helm parameter",
															Type:        "string",
														},
													},
													Type: "object",
												}},
												Type: "array",
											},
											"passCredentials": apiextensionsv1.JSONSchemaProps{
												Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
												Type:        "boolean",
											},
											"releaseName": apiextensionsv1.JSONSchemaProps{
												Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
												Type:        "string",
											},
											"skipCrds": apiextensionsv1.JSONSchemaProps{
												Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
												Type:        "boolean",
											},
											"valueFiles": apiextensionsv1.JSONSchemaProps{
												Description: "ValuesFiles is a list of Helm value files to use when generating a template",
												Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
												Type:        "array",
											},
											"values": apiextensionsv1.JSONSchemaProps{
												Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
												Type:        "string",
											},
											"version": apiextensionsv1.JSONSchemaProps{
												Description: `Version is the Helm version to use for templating ("3")`,
												Type:        "string",
											},
										},
										Type: "object",
									},
									"kustomize": apiextensionsv1.JSONSchemaProps{
										Description: "Kustomize holds kustomize specific options",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"commonAnnotations": apiextensionsv1.JSONSchemaProps{
												AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
													Allows: true,
													Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
												Type:        "object",
											},
											"commonLabels": apiextensionsv1.JSONSchemaProps{
												AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
													Allows: true,
													Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Description: "CommonLabels is a list of additional labels to add to rendered manifests",
												Type:        "object",
											},
											"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
												Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
												Type:        "boolean",
											},
											"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
												Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
												Type:        "boolean",
											},
											"images": apiextensionsv1.JSONSchemaProps{
												Description: "Images is a list of Kustomize image override specifications",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
													Type:        "string",
												}},
												Type: "array",
											},
											"namePrefix": apiextensionsv1.JSONSchemaProps{
												Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
												Type:        "string",
											},
											"nameSuffix": apiextensionsv1.JSONSchemaProps{
												Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
												Type:        "string",
											},
											"version": apiextensionsv1.JSONSchemaProps{
												Description: "Version controls which version of Kustomize to use for rendering manifests",
												Type:        "string",
											},
										},
										Type: "object",
									},
									"path": apiextensionsv1.JSONSchemaProps{
										Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
										Type:        "string",
									},
									"plugin": apiextensionsv1.JSONSchemaProps{
										Description: "Plugin holds config management plugin specific options",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"env": apiextensionsv1.JSONSchemaProps{
												Description: "Env is a list of environment variable entries",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "EnvEntry represents an entry in the application's environment",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"name": apiextensionsv1.JSONSchemaProps{
															Description: "Name is the name of the variable, usually expressed in uppercase",
															Type:        "string",
														},
														"value": apiextensionsv1.JSONSchemaProps{
															Description: "Value is the value of the variable",
															Type:        "string",
														},
													},
													Required: []string{"name", "value"},
													Type:     "object",
												}},
												Type: "array",
											},
											"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
											"parameters": apiextensionsv1.JSONSchemaProps{
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"array": apiextensionsv1.JSONSchemaProps{
															Description: "Array is the value of an array type parameter.",
															Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:        "array",
														},
														"map": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Description: "Map is the value of a map type parameter.",
															Type:        "object",
														},
														"name": apiextensionsv1.JSONSchemaProps{
															Description: "Name is the name identifying a parameter.",
															Type:        "string",
														},
														"string": apiextensionsv1.JSONSchemaProps{
															Description: "String_ is the value of a string type parameter.",
															Type:        "string",
														},
													},
													Type: "object",
												}},
												Type: "array",
											},
										},
										Type: "object",
									},
									"ref": apiextensionsv1.JSONSchemaProps{
										Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
										Type:        "string",
									},
									"repoURL": apiextensionsv1.JSONSchemaProps{
										Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
										Type:        "string",
									},
									"targetRevision": apiextensionsv1.JSONSchemaProps{
										Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
										Type:        "string",
									},
								},
								Required: []string{"repoURL"},
								Type:     "object",
							},
							"sources": apiextensionsv1.JSONSchemaProps{
								Description: "Sources is a reference to the location of the application's manifests or chart",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ApplicationSource contains all required information about the source of an application",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"chart": apiextensionsv1.JSONSchemaProps{
											Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
											Type:        "string",
										},
										"directory": apiextensionsv1.JSONSchemaProps{
											Description: "Directory holds path/directory specific options",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"exclude": apiextensionsv1.JSONSchemaProps{
													Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
													Type:        "string",
												},
												"include": apiextensionsv1.JSONSchemaProps{
													Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
													Type:        "string",
												},
												"jsonnet": apiextensionsv1.JSONSchemaProps{
													Description: "Jsonnet holds options specific to Jsonnet",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"extVars": apiextensionsv1.JSONSchemaProps{
															Description: "ExtVars is a list of Jsonnet External Variables",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																	"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Required: []string{"name", "value"},
																Type:     "object",
															}},
															Type: "array",
														},
														"libs": apiextensionsv1.JSONSchemaProps{
															Description: "Additional library search dirs",
															Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:        "array",
														},
														"tlas": apiextensionsv1.JSONSchemaProps{
															Description: "TLAS is a list of Jsonnet Top-level Arguments",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																	"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Required: []string{"name", "value"},
																Type:     "object",
															}},
															Type: "array",
														},
													},
													Type: "object",
												},
												"recurse": apiextensionsv1.JSONSchemaProps{
													Description: "Recurse specifies whether to scan a directory recursively for manifests",
													Type:        "boolean",
												},
											},
											Type: "object",
										},
										"helm": apiextensionsv1.JSONSchemaProps{
											Description: "Helm holds helm specific options",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"fileParameters": apiextensionsv1.JSONSchemaProps{
													Description: "FileParameters are file parameters to the helm template",
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"name": apiextensionsv1.JSONSchemaProps{
																Description: "Name is the name of the Helm parameter",
																Type:        "string",
															},
															"path": apiextensionsv1.JSONSchemaProps{
																Description: "Path is the path to the file containing the values for the Helm parameter",
																Type:        "string",
															},
														},
														Type: "object",
													}},
													Type: "array",
												},
												"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
													Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
													Type:        "boolean",
												},
												"parameters": apiextensionsv1.JSONSchemaProps{
													Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"forceString": apiextensionsv1.JSONSchemaProps{
																Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																Type:        "boolean",
															},
															"name": apiextensionsv1.JSONSchemaProps{
																Description: "Name is the name of the Helm parameter",
																Type:        "string",
															},
															"value": apiextensionsv1.JSONSchemaProps{
																Description: "Value is the value for the Helm parameter",
																Type:        "string",
															},
														},
														Type: "object",
													}},
													Type: "array",
												},
												"passCredentials": apiextensionsv1.JSONSchemaProps{
													Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
													Type:        "boolean",
												},
												"releaseName": apiextensionsv1.JSONSchemaProps{
													Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
													Type:        "string",
												},
												"skipCrds": apiextensionsv1.JSONSchemaProps{
													Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
													Type:        "boolean",
												},
												"valueFiles": apiextensionsv1.JSONSchemaProps{
													Description: "ValuesFiles is a list of Helm value files to use when generating a template",
													Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
													Type:        "array",
												},
												"values": apiextensionsv1.JSONSchemaProps{
													Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
													Type:        "string",
												},
												"version": apiextensionsv1.JSONSchemaProps{
													Description: `Version is the Helm version to use for templating ("3")`,
													Type:        "string",
												},
											},
											Type: "object",
										},
										"kustomize": apiextensionsv1.JSONSchemaProps{
											Description: "Kustomize holds kustomize specific options",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"commonAnnotations": apiextensionsv1.JSONSchemaProps{
													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
														Allows: true,
														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
													Type:        "object",
												},
												"commonLabels": apiextensionsv1.JSONSchemaProps{
													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
														Allows: true,
														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Description: "CommonLabels is a list of additional labels to add to rendered manifests",
													Type:        "object",
												},
												"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
													Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
													Type:        "boolean",
												},
												"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
													Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
													Type:        "boolean",
												},
												"images": apiextensionsv1.JSONSchemaProps{
													Description: "Images is a list of Kustomize image override specifications",
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
														Type:        "string",
													}},
													Type: "array",
												},
												"namePrefix": apiextensionsv1.JSONSchemaProps{
													Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
													Type:        "string",
												},
												"nameSuffix": apiextensionsv1.JSONSchemaProps{
													Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
													Type:        "string",
												},
												"version": apiextensionsv1.JSONSchemaProps{
													Description: "Version controls which version of Kustomize to use for rendering manifests",
													Type:        "string",
												},
											},
											Type: "object",
										},
										"path": apiextensionsv1.JSONSchemaProps{
											Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
											Type:        "string",
										},
										"plugin": apiextensionsv1.JSONSchemaProps{
											Description: "Plugin holds config management plugin specific options",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"env": apiextensionsv1.JSONSchemaProps{
													Description: "Env is a list of environment variable entries",
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Description: "EnvEntry represents an entry in the application's environment",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"name": apiextensionsv1.JSONSchemaProps{
																Description: "Name is the name of the variable, usually expressed in uppercase",
																Type:        "string",
															},
															"value": apiextensionsv1.JSONSchemaProps{
																Description: "Value is the value of the variable",
																Type:        "string",
															},
														},
														Required: []string{"name", "value"},
														Type:     "object",
													}},
													Type: "array",
												},
												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"parameters": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"array": apiextensionsv1.JSONSchemaProps{
																Description: "Array is the value of an array type parameter.",
																Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:        "array",
															},
															"map": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "Map is the value of a map type parameter.",
																Type:        "object",
															},
															"name": apiextensionsv1.JSONSchemaProps{
																Description: "Name is the name identifying a parameter.",
																Type:        "string",
															},
															"string": apiextensionsv1.JSONSchemaProps{
																Description: "String_ is the value of a string type parameter.",
																Type:        "string",
															},
														},
														Type: "object",
													}},
													Type: "array",
												},
											},
											Type: "object",
										},
										"ref": apiextensionsv1.JSONSchemaProps{
											Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
											Type:        "string",
										},
										"repoURL": apiextensionsv1.JSONSchemaProps{
											Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
											Type:        "string",
										},
										"targetRevision": apiextensionsv1.JSONSchemaProps{
											Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
											Type:        "string",
										},
									},
									Required: []string{"repoURL"},
									Type:     "object",
								}},
								Type: "array",
							},
							"syncPolicy": apiextensionsv1.JSONSchemaProps{
								Description: "SyncPolicy controls when and how a sync will be performed",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"automated": apiextensionsv1.JSONSchemaProps{
										Description: "Automated will keep an application synced to the target revision",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"allowEmpty": apiextensionsv1.JSONSchemaProps{
												Description: "AllowEmpty allows apps have zero live resources (default: false)",
												Type:        "boolean",
											},
											"prune": apiextensionsv1.JSONSchemaProps{
												Description: "Prune specifies whether to delete resources from the cluster that are not found in the sources anymore as part of automated sync (default: false)",
												Type:        "boolean",
											},
											"selfHeal": apiextensionsv1.JSONSchemaProps{
												Description: "SelfHeal specifes whether to revert resources back to their desired state upon modification in the cluster (default: false)",
												Type:        "boolean",
											},
										},
										Type: "object",
									},
									"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
										Description: "ManagedNamespaceMetadata controls metadata in the given namespace (if CreateNamespace=true)",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"annotations": apiextensionsv1.JSONSchemaProps{
												AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
													Allows: true,
													Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Type: "object",
											},
											"labels": apiextensionsv1.JSONSchemaProps{
												AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
													Allows: true,
													Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Type: "object",
											},
										},
										Type: "object",
									},
									"retry": apiextensionsv1.JSONSchemaProps{
										Description: "Retry controls failed sync retry behavior",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"backoff": apiextensionsv1.JSONSchemaProps{
												Description: "Backoff controls how to backoff on subsequent retries of failed syncs",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"duration": apiextensionsv1.JSONSchemaProps{
														Description: `Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")`,
														Type:        "string",
													},
													"factor": apiextensionsv1.JSONSchemaProps{
														Description: "Factor is a factor to multiply the base duration after each failed retry",
														Format:      "int64",
														Type:        "integer",
													},
													"maxDuration": apiextensionsv1.JSONSchemaProps{
														Description: "MaxDuration is the maximum amount of time allowed for the backoff strategy",
														Type:        "string",
													},
												},
												Type: "object",
											},
											"limit": apiextensionsv1.JSONSchemaProps{
												Description: "Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.",
												Format:      "int64",
												Type:        "integer",
											},
										},
										Type: "object",
									},
									"syncOptions": apiextensionsv1.JSONSchemaProps{
										Description: "Options allow you to specify whole app sync-options",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
								},
								Type: "object",
							},
						},
						Required: []string{"destination", "project"},
						Type:     "object",
					},
					"status": apiextensionsv1.JSONSchemaProps{
						Description: "ApplicationStatus contains status information for the application",
						Properties: map[string]apiextensionsv1.JSONSchemaProps{
							"conditions": apiextensionsv1.JSONSchemaProps{
								Description: "Conditions is a list of currently observed application conditions",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ApplicationCondition contains details about an application condition, which is usally an error or warning",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"lastTransitionTime": apiextensionsv1.JSONSchemaProps{
											Description: "LastTransitionTime is the time the condition was last observed",
											Format:      "date-time",
											Type:        "string",
										},
										"message": apiextensionsv1.JSONSchemaProps{
											Description: "Message contains human-readable message indicating details about condition",
											Type:        "string",
										},
										"type": apiextensionsv1.JSONSchemaProps{
											Description: "Type is an application condition type",
											Type:        "string",
										},
									},
									Required: []string{"message", "type"},
									Type:     "object",
								}},
								Type: "array",
							},
							"health": apiextensionsv1.JSONSchemaProps{
								Description: "Health contains information about the application's current health status",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"message": apiextensionsv1.JSONSchemaProps{
										Description: "Message is a human-readable informational message describing the health status",
										Type:        "string",
									},
									"status": apiextensionsv1.JSONSchemaProps{
										Description: "Status holds the status code of the application or resource",
										Type:        "string",
									},
								},
								Type: "object",
							},
							"history": apiextensionsv1.JSONSchemaProps{
								Description: "History contains information about the application's sync history",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "RevisionHistory contains history information about a previous sync",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"deployStartedAt": apiextensionsv1.JSONSchemaProps{
											Description: "DeployStartedAt holds the time the sync operation started",
											Format:      "date-time",
											Type:        "string",
										},
										"deployedAt": apiextensionsv1.JSONSchemaProps{
											Description: "DeployedAt holds the time the sync operation completed",
											Format:      "date-time",
											Type:        "string",
										},
										"id": apiextensionsv1.JSONSchemaProps{
											Description: "ID is an auto incrementing identifier of the RevisionHistory",
											Format:      "int64",
											Type:        "integer",
										},
										"revision": apiextensionsv1.JSONSchemaProps{
											Description: "Revision holds the revision the sync was performed against",
											Type:        "string",
										},
										"revisions": apiextensionsv1.JSONSchemaProps{
											Description: "Revisions holds the revision of each source in sources field the sync was performed against",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
										"source": apiextensionsv1.JSONSchemaProps{
											Description: "Source is a reference to the application source used for the sync operation",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"chart": apiextensionsv1.JSONSchemaProps{
													Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
													Type:        "string",
												},
												"directory": apiextensionsv1.JSONSchemaProps{
													Description: "Directory holds path/directory specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"exclude": apiextensionsv1.JSONSchemaProps{
															Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
															Type:        "string",
														},
														"include": apiextensionsv1.JSONSchemaProps{
															Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
															Type:        "string",
														},
														"jsonnet": apiextensionsv1.JSONSchemaProps{
															Description: "Jsonnet holds options specific to Jsonnet",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"extVars": apiextensionsv1.JSONSchemaProps{
																	Description: "ExtVars is a list of Jsonnet External Variables",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"libs": apiextensionsv1.JSONSchemaProps{
																	Description: "Additional library search dirs",
																	Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:        "array",
																},
																"tlas": apiextensionsv1.JSONSchemaProps{
																	Description: "TLAS is a list of Jsonnet Top-level Arguments",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
															},
															Type: "object",
														},
														"recurse": apiextensionsv1.JSONSchemaProps{
															Description: "Recurse specifies whether to scan a directory recursively for manifests",
															Type:        "boolean",
														},
													},
													Type: "object",
												},
												"helm": apiextensionsv1.JSONSchemaProps{
													Description: "Helm holds helm specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"fileParameters": apiextensionsv1.JSONSchemaProps{
															Description: "FileParameters are file parameters to the helm template",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name of the Helm parameter",
																		Type:        "string",
																	},
																	"path": apiextensionsv1.JSONSchemaProps{
																		Description: "Path is the path to the file containing the values for the Helm parameter",
																		Type:        "string",
																	},
																},
																Type: "object",
															}},
															Type: "array",
														},
														"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
															Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
															Type:        "boolean",
														},
														"parameters": apiextensionsv1.JSONSchemaProps{
															Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"forceString": apiextensionsv1.JSONSchemaProps{
																		Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																		Type:        "boolean",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name of the Helm parameter",
																		Type:        "string",
																	},
																	"value": apiextensionsv1.JSONSchemaProps{
																		Description: "Value is the value for the Helm parameter",
																		Type:        "string",
																	},
																},
																Type: "object",
															}},
															Type: "array",
														},
														"passCredentials": apiextensionsv1.JSONSchemaProps{
															Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
															Type:        "boolean",
														},
														"releaseName": apiextensionsv1.JSONSchemaProps{
															Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
															Type:        "string",
														},
														"skipCrds": apiextensionsv1.JSONSchemaProps{
															Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
															Type:        "boolean",
														},
														"valueFiles": apiextensionsv1.JSONSchemaProps{
															Description: "ValuesFiles is a list of Helm value files to use when generating a template",
															Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:        "array",
														},
														"values": apiextensionsv1.JSONSchemaProps{
															Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
															Type:        "string",
														},
														"version": apiextensionsv1.JSONSchemaProps{
															Description: `Version is the Helm version to use for templating ("3")`,
															Type:        "string",
														},
													},
													Type: "object",
												},
												"kustomize": apiextensionsv1.JSONSchemaProps{
													Description: "Kustomize holds kustomize specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"commonAnnotations": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
															Type:        "object",
														},
														"commonLabels": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Description: "CommonLabels is a list of additional labels to add to rendered manifests",
															Type:        "object",
														},
														"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
															Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
															Type:        "boolean",
														},
														"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
															Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
															Type:        "boolean",
														},
														"images": apiextensionsv1.JSONSchemaProps{
															Description: "Images is a list of Kustomize image override specifications",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																Type:        "string",
															}},
															Type: "array",
														},
														"namePrefix": apiextensionsv1.JSONSchemaProps{
															Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
															Type:        "string",
														},
														"nameSuffix": apiextensionsv1.JSONSchemaProps{
															Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
															Type:        "string",
														},
														"version": apiextensionsv1.JSONSchemaProps{
															Description: "Version controls which version of Kustomize to use for rendering manifests",
															Type:        "string",
														},
													},
													Type: "object",
												},
												"path": apiextensionsv1.JSONSchemaProps{
													Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
													Type:        "string",
												},
												"plugin": apiextensionsv1.JSONSchemaProps{
													Description: "Plugin holds config management plugin specific options",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"env": apiextensionsv1.JSONSchemaProps{
															Description: "Env is a list of environment variable entries",
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Description: "EnvEntry represents an entry in the application's environment",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name of the variable, usually expressed in uppercase",
																		Type:        "string",
																	},
																	"value": apiextensionsv1.JSONSchemaProps{
																		Description: "Value is the value of the variable",
																		Type:        "string",
																	},
																},
																Required: []string{"name", "value"},
																Type:     "object",
															}},
															Type: "array",
														},
														"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"parameters": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"array": apiextensionsv1.JSONSchemaProps{
																		Description: "Array is the value of an array type parameter.",
																		Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:        "array",
																	},
																	"map": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Description: "Map is the value of a map type parameter.",
																		Type:        "object",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{
																		Description: "Name is the name identifying a parameter.",
																		Type:        "string",
																	},
																	"string": apiextensionsv1.JSONSchemaProps{
																		Description: "String_ is the value of a string type parameter.",
																		Type:        "string",
																	},
																},
																Type: "object",
															}},
															Type: "array",
														},
													},
													Type: "object",
												},
												"ref": apiextensionsv1.JSONSchemaProps{
													Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
													Type:        "string",
												},
												"repoURL": apiextensionsv1.JSONSchemaProps{
													Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
													Type:        "string",
												},
												"targetRevision": apiextensionsv1.JSONSchemaProps{
													Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
													Type:        "string",
												},
											},
											Required: []string{"repoURL"},
											Type:     "object",
										},
										"sources": apiextensionsv1.JSONSchemaProps{
											Description: "Sources is a reference to the application sources used for the sync operation",
											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
												Description: "ApplicationSource contains all required information about the source of an application",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"chart": apiextensionsv1.JSONSchemaProps{
														Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
														Type:        "string",
													},
													"directory": apiextensionsv1.JSONSchemaProps{
														Description: "Directory holds path/directory specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"exclude": apiextensionsv1.JSONSchemaProps{
																Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																Type:        "string",
															},
															"include": apiextensionsv1.JSONSchemaProps{
																Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																Type:        "string",
															},
															"jsonnet": apiextensionsv1.JSONSchemaProps{
																Description: "Jsonnet holds options specific to Jsonnet",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"extVars": apiextensionsv1.JSONSchemaProps{
																		Description: "ExtVars is a list of Jsonnet External Variables",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"libs": apiextensionsv1.JSONSchemaProps{
																		Description: "Additional library search dirs",
																		Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:        "array",
																	},
																	"tlas": apiextensionsv1.JSONSchemaProps{
																		Description: "TLAS is a list of Jsonnet Top-level Arguments",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																},
																Type: "object",
															},
															"recurse": apiextensionsv1.JSONSchemaProps{
																Description: "Recurse specifies whether to scan a directory recursively for manifests",
																Type:        "boolean",
															},
														},
														Type: "object",
													},
													"helm": apiextensionsv1.JSONSchemaProps{
														Description: "Helm holds helm specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"fileParameters": apiextensionsv1.JSONSchemaProps{
																Description: "FileParameters are file parameters to the helm template",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the Helm parameter",
																			Type:        "string",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{
																			Description: "Path is the path to the file containing the values for the Helm parameter",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																Type:        "boolean",
															},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"forceString": apiextensionsv1.JSONSchemaProps{
																			Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																			Type:        "boolean",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the Helm parameter",
																			Type:        "string",
																		},
																		"value": apiextensionsv1.JSONSchemaProps{
																			Description: "Value is the value for the Helm parameter",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"passCredentials": apiextensionsv1.JSONSchemaProps{
																Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																Type:        "boolean",
															},
															"releaseName": apiextensionsv1.JSONSchemaProps{
																Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																Type:        "string",
															},
															"skipCrds": apiextensionsv1.JSONSchemaProps{
																Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																Type:        "boolean",
															},
															"valueFiles": apiextensionsv1.JSONSchemaProps{
																Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:        "array",
															},
															"values": apiextensionsv1.JSONSchemaProps{
																Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																Type:        "string",
															},
															"version": apiextensionsv1.JSONSchemaProps{
																Description: `Version is the Helm version to use for templating ("3")`,
																Type:        "string",
															},
														},
														Type: "object",
													},
													"kustomize": apiextensionsv1.JSONSchemaProps{
														Description: "Kustomize holds kustomize specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																Type:        "object",
															},
															"commonLabels": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																Type:        "object",
															},
															"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																Type:        "boolean",
															},
															"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																Type:        "boolean",
															},
															"images": apiextensionsv1.JSONSchemaProps{
																Description: "Images is a list of Kustomize image override specifications",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																	Type:        "string",
																}},
																Type: "array",
															},
															"namePrefix": apiextensionsv1.JSONSchemaProps{
																Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																Type:        "string",
															},
															"nameSuffix": apiextensionsv1.JSONSchemaProps{
																Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																Type:        "string",
															},
															"version": apiextensionsv1.JSONSchemaProps{
																Description: "Version controls which version of Kustomize to use for rendering manifests",
																Type:        "string",
															},
														},
														Type: "object",
													},
													"path": apiextensionsv1.JSONSchemaProps{
														Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
														Type:        "string",
													},
													"plugin": apiextensionsv1.JSONSchemaProps{
														Description: "Plugin holds config management plugin specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"env": apiextensionsv1.JSONSchemaProps{
																Description: "Env is a list of environment variable entries",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "EnvEntry represents an entry in the application's environment",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the variable, usually expressed in uppercase",
																			Type:        "string",
																		},
																		"value": apiextensionsv1.JSONSchemaProps{
																			Description: "Value is the value of the variable",
																			Type:        "string",
																		},
																	},
																	Required: []string{"name", "value"},
																	Type:     "object",
																}},
																Type: "array",
															},
															"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"array": apiextensionsv1.JSONSchemaProps{
																			Description: "Array is the value of an array type parameter.",
																			Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:        "array",
																		},
																		"map": apiextensionsv1.JSONSchemaProps{
																			AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																				Allows: true,
																				Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Description: "Map is the value of a map type parameter.",
																			Type:        "object",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name identifying a parameter.",
																			Type:        "string",
																		},
																		"string": apiextensionsv1.JSONSchemaProps{
																			Description: "String_ is the value of a string type parameter.",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
														},
														Type: "object",
													},
													"ref": apiextensionsv1.JSONSchemaProps{
														Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
														Type:        "string",
													},
													"repoURL": apiextensionsv1.JSONSchemaProps{
														Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
														Type:        "string",
													},
													"targetRevision": apiextensionsv1.JSONSchemaProps{
														Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
														Type:        "string",
													},
												},
												Required: []string{"repoURL"},
												Type:     "object",
											}},
											Type: "array",
										},
									},
									Required: []string{"deployedAt", "id"},
									Type:     "object",
								}},
								Type: "array",
							},
							"observedAt": apiextensionsv1.JSONSchemaProps{
								Description: "ObservedAt indicates when the application state was updated without querying latest git state Deprecated: controller no longer updates ObservedAt field",
								Format:      "date-time",
								Type:        "string",
							},
							"operationState": apiextensionsv1.JSONSchemaProps{
								Description: "OperationState contains information about any ongoing operations, such as a sync",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"finishedAt": apiextensionsv1.JSONSchemaProps{
										Description: "FinishedAt contains time of operation completion",
										Format:      "date-time",
										Type:        "string",
									},
									"message": apiextensionsv1.JSONSchemaProps{
										Description: "Message holds any pertinent messages when attempting to perform operation (typically errors).",
										Type:        "string",
									},
									"operation": apiextensionsv1.JSONSchemaProps{
										Description: "Operation is the original requested operation",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"info": apiextensionsv1.JSONSchemaProps{
												Description: "Info is a list of informational items for this operation",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"name", "value"},
													Type:     "object",
												}},
												Type: "array",
											},
											"initiatedBy": apiextensionsv1.JSONSchemaProps{
												Description: "InitiatedBy contains information about who initiated the operations",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"automated": apiextensionsv1.JSONSchemaProps{
														Description: "Automated is set to true if operation was initiated automatically by the application controller.",
														Type:        "boolean",
													},
													"username": apiextensionsv1.JSONSchemaProps{
														Description: "Username contains the name of a user who started operation",
														Type:        "string",
													},
												},
												Type: "object",
											},
											"retry": apiextensionsv1.JSONSchemaProps{
												Description: "Retry controls the strategy to apply if a sync fails",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"backoff": apiextensionsv1.JSONSchemaProps{
														Description: "Backoff controls how to backoff on subsequent retries of failed syncs",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"duration": apiextensionsv1.JSONSchemaProps{
																Description: `Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")`,
																Type:        "string",
															},
															"factor": apiextensionsv1.JSONSchemaProps{
																Description: "Factor is a factor to multiply the base duration after each failed retry",
																Format:      "int64",
																Type:        "integer",
															},
															"maxDuration": apiextensionsv1.JSONSchemaProps{
																Description: "MaxDuration is the maximum amount of time allowed for the backoff strategy",
																Type:        "string",
															},
														},
														Type: "object",
													},
													"limit": apiextensionsv1.JSONSchemaProps{
														Description: "Limit is the maximum number of attempts for retrying a failed sync. If set to 0, no retries will be performed.",
														Format:      "int64",
														Type:        "integer",
													},
												},
												Type: "object",
											},
											"sync": apiextensionsv1.JSONSchemaProps{
												Description: "Sync contains parameters for the operation",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"dryRun": apiextensionsv1.JSONSchemaProps{
														Description: "DryRun specifies to perform a `kubectl apply --dry-run` without actually performing the sync",
														Type:        "boolean",
													},
													"manifests": apiextensionsv1.JSONSchemaProps{
														Description: "Manifests is an optional field that overrides sync source with a local directory for development",
														Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:        "array",
													},
													"prune": apiextensionsv1.JSONSchemaProps{
														Description: "Prune specifies to delete resources from the cluster that are no longer tracked in git",
														Type:        "boolean",
													},
													"resources": apiextensionsv1.JSONSchemaProps{
														Description: "Resources describes which resources shall be part of the sync",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "SyncOperationResource contains resources to sync.",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"group":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																"kind":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"kind", "name"},
															Type:     "object",
														}},
														Type: "array",
													},
													"revision": apiextensionsv1.JSONSchemaProps{
														Description: "Revision is the revision (Git) or chart version (Helm) which to sync the application to If omitted, will use the revision specified in app spec.",
														Type:        "string",
													},
													"revisions": apiextensionsv1.JSONSchemaProps{
														Description: "Revisions is the list of revision (Git) or chart version (Helm) which to sync each source in sources field for the application to If omitted, will use the revision specified in app spec.",
														Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:        "array",
													},
													"source": apiextensionsv1.JSONSchemaProps{
														Description: "Source overrides the source definition set in the application. This is typically set in a Rollback operation and is nil during a Sync operation",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"chart": apiextensionsv1.JSONSchemaProps{
																Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
																Type:        "string",
															},
															"directory": apiextensionsv1.JSONSchemaProps{
																Description: "Directory holds path/directory specific options",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"exclude": apiextensionsv1.JSONSchemaProps{
																		Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																		Type:        "string",
																	},
																	"include": apiextensionsv1.JSONSchemaProps{
																		Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																		Type:        "string",
																	},
																	"jsonnet": apiextensionsv1.JSONSchemaProps{
																		Description: "Jsonnet holds options specific to Jsonnet",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"extVars": apiextensionsv1.JSONSchemaProps{
																				Description: "ExtVars is a list of Jsonnet External Variables",
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																					Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																						"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Required: []string{"name", "value"},
																					Type:     "object",
																				}},
																				Type: "array",
																			},
																			"libs": apiextensionsv1.JSONSchemaProps{
																				Description: "Additional library search dirs",
																				Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:        "array",
																			},
																			"tlas": apiextensionsv1.JSONSchemaProps{
																				Description: "TLAS is a list of Jsonnet Top-level Arguments",
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																					Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																						"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Required: []string{"name", "value"},
																					Type:     "object",
																				}},
																				Type: "array",
																			},
																		},
																		Type: "object",
																	},
																	"recurse": apiextensionsv1.JSONSchemaProps{
																		Description: "Recurse specifies whether to scan a directory recursively for manifests",
																		Type:        "boolean",
																	},
																},
																Type: "object",
															},
															"helm": apiextensionsv1.JSONSchemaProps{
																Description: "Helm holds helm specific options",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"fileParameters": apiextensionsv1.JSONSchemaProps{
																		Description: "FileParameters are file parameters to the helm template",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"name": apiextensionsv1.JSONSchemaProps{
																					Description: "Name is the name of the Helm parameter",
																					Type:        "string",
																				},
																				"path": apiextensionsv1.JSONSchemaProps{
																					Description: "Path is the path to the file containing the values for the Helm parameter",
																					Type:        "string",
																				},
																			},
																			Type: "object",
																		}},
																		Type: "array",
																	},
																	"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																		Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																		Type:        "boolean",
																	},
																	"parameters": apiextensionsv1.JSONSchemaProps{
																		Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"forceString": apiextensionsv1.JSONSchemaProps{
																					Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																					Type:        "boolean",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{
																					Description: "Name is the name of the Helm parameter",
																					Type:        "string",
																				},
																				"value": apiextensionsv1.JSONSchemaProps{
																					Description: "Value is the value for the Helm parameter",
																					Type:        "string",
																				},
																			},
																			Type: "object",
																		}},
																		Type: "array",
																	},
																	"passCredentials": apiextensionsv1.JSONSchemaProps{
																		Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																		Type:        "boolean",
																	},
																	"releaseName": apiextensionsv1.JSONSchemaProps{
																		Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																		Type:        "string",
																	},
																	"skipCrds": apiextensionsv1.JSONSchemaProps{
																		Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																		Type:        "boolean",
																	},
																	"valueFiles": apiextensionsv1.JSONSchemaProps{
																		Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																		Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:        "array",
																	},
																	"values": apiextensionsv1.JSONSchemaProps{
																		Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																		Type:        "string",
																	},
																	"version": apiextensionsv1.JSONSchemaProps{
																		Description: `Version is the Helm version to use for templating ("3")`,
																		Type:        "string",
																	},
																},
																Type: "object",
															},
															"kustomize": apiextensionsv1.JSONSchemaProps{
																Description: "Kustomize holds kustomize specific options",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																		Type:        "object",
																	},
																	"commonLabels": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																		Type:        "object",
																	},
																	"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																		Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																		Type:        "boolean",
																	},
																	"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																		Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																		Type:        "boolean",
																	},
																	"images": apiextensionsv1.JSONSchemaProps{
																		Description: "Images is a list of Kustomize image override specifications",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																			Type:        "string",
																		}},
																		Type: "array",
																	},
																	"namePrefix": apiextensionsv1.JSONSchemaProps{
																		Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																		Type:        "string",
																	},
																	"nameSuffix": apiextensionsv1.JSONSchemaProps{
																		Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																		Type:        "string",
																	},
																	"version": apiextensionsv1.JSONSchemaProps{
																		Description: "Version controls which version of Kustomize to use for rendering manifests",
																		Type:        "string",
																	},
																},
																Type: "object",
															},
															"path": apiextensionsv1.JSONSchemaProps{
																Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
																Type:        "string",
															},
															"plugin": apiextensionsv1.JSONSchemaProps{
																Description: "Plugin holds config management plugin specific options",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"env": apiextensionsv1.JSONSchemaProps{
																		Description: "Env is a list of environment variable entries",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "EnvEntry represents an entry in the application's environment",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"name": apiextensionsv1.JSONSchemaProps{
																					Description: "Name is the name of the variable, usually expressed in uppercase",
																					Type:        "string",
																				},
																				"value": apiextensionsv1.JSONSchemaProps{
																					Description: "Value is the value of the variable",
																					Type:        "string",
																				},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"parameters": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"array": apiextensionsv1.JSONSchemaProps{
																					Description: "Array is the value of an array type parameter.",
																					Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:        "array",
																				},
																				"map": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Description: "Map is the value of a map type parameter.",
																					Type:        "object",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{
																					Description: "Name is the name identifying a parameter.",
																					Type:        "string",
																				},
																				"string": apiextensionsv1.JSONSchemaProps{
																					Description: "String_ is the value of a string type parameter.",
																					Type:        "string",
																				},
																			},
																			Type: "object",
																		}},
																		Type: "array",
																	},
																},
																Type: "object",
															},
															"ref": apiextensionsv1.JSONSchemaProps{
																Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
																Type:        "string",
															},
															"repoURL": apiextensionsv1.JSONSchemaProps{
																Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
																Type:        "string",
															},
															"targetRevision": apiextensionsv1.JSONSchemaProps{
																Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
																Type:        "string",
															},
														},
														Required: []string{"repoURL"},
														Type:     "object",
													},
													"sources": apiextensionsv1.JSONSchemaProps{
														Description: "Sources overrides the source definition set in the application. This is typically set in a Rollback operation and is nil during a Sync operation",
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Description: "ApplicationSource contains all required information about the source of an application",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"chart": apiextensionsv1.JSONSchemaProps{
																	Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
																	Type:        "string",
																},
																"directory": apiextensionsv1.JSONSchemaProps{
																	Description: "Directory holds path/directory specific options",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"exclude": apiextensionsv1.JSONSchemaProps{
																			Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																			Type:        "string",
																		},
																		"include": apiextensionsv1.JSONSchemaProps{
																			Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																			Type:        "string",
																		},
																		"jsonnet": apiextensionsv1.JSONSchemaProps{
																			Description: "Jsonnet holds options specific to Jsonnet",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"extVars": apiextensionsv1.JSONSchemaProps{
																					Description: "ExtVars is a list of Jsonnet External Variables",
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"libs": apiextensionsv1.JSONSchemaProps{
																					Description: "Additional library search dirs",
																					Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:        "array",
																				},
																				"tlas": apiextensionsv1.JSONSchemaProps{
																					Description: "TLAS is a list of Jsonnet Top-level Arguments",
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"recurse": apiextensionsv1.JSONSchemaProps{
																			Description: "Recurse specifies whether to scan a directory recursively for manifests",
																			Type:        "boolean",
																		},
																	},
																	Type: "object",
																},
																"helm": apiextensionsv1.JSONSchemaProps{
																	Description: "Helm holds helm specific options",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"fileParameters": apiextensionsv1.JSONSchemaProps{
																			Description: "FileParameters are file parameters to the helm template",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"name": apiextensionsv1.JSONSchemaProps{
																						Description: "Name is the name of the Helm parameter",
																						Type:        "string",
																					},
																					"path": apiextensionsv1.JSONSchemaProps{
																						Description: "Path is the path to the file containing the values for the Helm parameter",
																						Type:        "string",
																					},
																				},
																				Type: "object",
																			}},
																			Type: "array",
																		},
																		"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																			Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																			Type:        "boolean",
																		},
																		"parameters": apiextensionsv1.JSONSchemaProps{
																			Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"forceString": apiextensionsv1.JSONSchemaProps{
																						Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																						Type:        "boolean",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{
																						Description: "Name is the name of the Helm parameter",
																						Type:        "string",
																					},
																					"value": apiextensionsv1.JSONSchemaProps{
																						Description: "Value is the value for the Helm parameter",
																						Type:        "string",
																					},
																				},
																				Type: "object",
																			}},
																			Type: "array",
																		},
																		"passCredentials": apiextensionsv1.JSONSchemaProps{
																			Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																			Type:        "boolean",
																		},
																		"releaseName": apiextensionsv1.JSONSchemaProps{
																			Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																			Type:        "string",
																		},
																		"skipCrds": apiextensionsv1.JSONSchemaProps{
																			Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																			Type:        "boolean",
																		},
																		"valueFiles": apiextensionsv1.JSONSchemaProps{
																			Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																			Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:        "array",
																		},
																		"values": apiextensionsv1.JSONSchemaProps{
																			Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																			Type:        "string",
																		},
																		"version": apiextensionsv1.JSONSchemaProps{
																			Description: `Version is the Helm version to use for templating ("3")`,
																			Type:        "string",
																		},
																	},
																	Type: "object",
																},
																"kustomize": apiextensionsv1.JSONSchemaProps{
																	Description: "Kustomize holds kustomize specific options",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																			AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																				Allows: true,
																				Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																			Type:        "object",
																		},
																		"commonLabels": apiextensionsv1.JSONSchemaProps{
																			AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																				Allows: true,
																				Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																			Type:        "object",
																		},
																		"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																			Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																			Type:        "boolean",
																		},
																		"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																			Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																			Type:        "boolean",
																		},
																		"images": apiextensionsv1.JSONSchemaProps{
																			Description: "Images is a list of Kustomize image override specifications",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																				Type:        "string",
																			}},
																			Type: "array",
																		},
																		"namePrefix": apiextensionsv1.JSONSchemaProps{
																			Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																			Type:        "string",
																		},
																		"nameSuffix": apiextensionsv1.JSONSchemaProps{
																			Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																			Type:        "string",
																		},
																		"version": apiextensionsv1.JSONSchemaProps{
																			Description: "Version controls which version of Kustomize to use for rendering manifests",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																},
																"path": apiextensionsv1.JSONSchemaProps{
																	Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
																	Type:        "string",
																},
																"plugin": apiextensionsv1.JSONSchemaProps{
																	Description: "Plugin holds config management plugin specific options",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"env": apiextensionsv1.JSONSchemaProps{
																			Description: "Env is a list of environment variable entries",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "EnvEntry represents an entry in the application's environment",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"name": apiextensionsv1.JSONSchemaProps{
																						Description: "Name is the name of the variable, usually expressed in uppercase",
																						Type:        "string",
																					},
																					"value": apiextensionsv1.JSONSchemaProps{
																						Description: "Value is the value of the variable",
																						Type:        "string",
																					},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"parameters": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"array": apiextensionsv1.JSONSchemaProps{
																						Description: "Array is the value of an array type parameter.",
																						Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:        "array",
																					},
																					"map": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Description: "Map is the value of a map type parameter.",
																						Type:        "object",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{
																						Description: "Name is the name identifying a parameter.",
																						Type:        "string",
																					},
																					"string": apiextensionsv1.JSONSchemaProps{
																						Description: "String_ is the value of a string type parameter.",
																						Type:        "string",
																					},
																				},
																				Type: "object",
																			}},
																			Type: "array",
																		},
																	},
																	Type: "object",
																},
																"ref": apiextensionsv1.JSONSchemaProps{
																	Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
																	Type:        "string",
																},
																"repoURL": apiextensionsv1.JSONSchemaProps{
																	Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
																	Type:        "string",
																},
																"targetRevision": apiextensionsv1.JSONSchemaProps{
																	Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
																	Type:        "string",
																},
															},
															Required: []string{"repoURL"},
															Type:     "object",
														}},
														Type: "array",
													},
													"syncOptions": apiextensionsv1.JSONSchemaProps{
														Description: "SyncOptions provide per-sync sync-options, e.g. Validate=false",
														Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:        "array",
													},
													"syncStrategy": apiextensionsv1.JSONSchemaProps{
														Description: "SyncStrategy describes how to perform the sync",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"apply": apiextensionsv1.JSONSchemaProps{
																Description: "Apply will perform a `kubectl apply` to perform the sync.",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{"force": apiextensionsv1.JSONSchemaProps{
																	Description: "Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.",
																	Type:        "boolean",
																}},
																Type: "object",
															},
															"hook": apiextensionsv1.JSONSchemaProps{
																Description: "Hook will submit any referenced resources to perform the sync. This is the default strategy",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{"force": apiextensionsv1.JSONSchemaProps{
																	Description: "Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.",
																	Type:        "boolean",
																}},
																Type: "object",
															},
														},
														Type: "object",
													},
												},
												Type: "object",
											},
										},
										Type: "object",
									},
									"phase": apiextensionsv1.JSONSchemaProps{
										Description: "Phase is the current phase of the operation",
										Type:        "string",
									},
									"retryCount": apiextensionsv1.JSONSchemaProps{
										Description: "RetryCount contains time of operation retries",
										Format:      "int64",
										Type:        "integer",
									},
									"startedAt": apiextensionsv1.JSONSchemaProps{
										Description: "StartedAt contains time of operation start",
										Format:      "date-time",
										Type:        "string",
									},
									"syncResult": apiextensionsv1.JSONSchemaProps{
										Description: "SyncResult is the result of a Sync operation",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"resources": apiextensionsv1.JSONSchemaProps{
												Description: "Resources contains a list of sync result items for each individual resource in a sync operation",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "ResourceResult holds the operation result details of a specific resource",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"group": apiextensionsv1.JSONSchemaProps{
															Description: "Group specifies the API group of the resource",
															Type:        "string",
														},
														"hookPhase": apiextensionsv1.JSONSchemaProps{
															Description: "HookPhase contains the state of any operation associated with this resource OR hook This can also contain values for non-hook resources.",
															Type:        "string",
														},
														"hookType": apiextensionsv1.JSONSchemaProps{
															Description: "HookType specifies the type of the hook. Empty for non-hook resources",
															Type:        "string",
														},
														"kind": apiextensionsv1.JSONSchemaProps{
															Description: "Kind specifies the API kind of the resource",
															Type:        "string",
														},
														"message": apiextensionsv1.JSONSchemaProps{
															Description: "Message contains an informational or error message for the last sync OR operation",
															Type:        "string",
														},
														"name": apiextensionsv1.JSONSchemaProps{
															Description: "Name specifies the name of the resource",
															Type:        "string",
														},
														"namespace": apiextensionsv1.JSONSchemaProps{
															Description: "Namespace specifies the target namespace of the resource",
															Type:        "string",
														},
														"status": apiextensionsv1.JSONSchemaProps{
															Description: "Status holds the final result of the sync. Will be empty if the resources is yet to be applied/pruned and is always zero-value for hooks",
															Type:        "string",
														},
														"syncPhase": apiextensionsv1.JSONSchemaProps{
															Description: "SyncPhase indicates the particular phase of the sync that this result was acquired in",
															Type:        "string",
														},
														"version": apiextensionsv1.JSONSchemaProps{
															Description: "Version specifies the API version of the resource",
															Type:        "string",
														},
													},
													Required: []string{"group", "kind", "name", "namespace", "version"},
													Type:     "object",
												}},
												Type: "array",
											},
											"revision": apiextensionsv1.JSONSchemaProps{
												Description: "Revision holds the revision this sync operation was performed to",
												Type:        "string",
											},
											"revisions": apiextensionsv1.JSONSchemaProps{
												Description: "Revisions holds the revision this sync operation was performed for respective indexed source in sources field",
												Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
												Type:        "array",
											},
											"source": apiextensionsv1.JSONSchemaProps{
												Description: "Source records the application source information of the sync, used for comparing auto-sync",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"chart": apiextensionsv1.JSONSchemaProps{
														Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
														Type:        "string",
													},
													"directory": apiextensionsv1.JSONSchemaProps{
														Description: "Directory holds path/directory specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"exclude": apiextensionsv1.JSONSchemaProps{
																Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																Type:        "string",
															},
															"include": apiextensionsv1.JSONSchemaProps{
																Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																Type:        "string",
															},
															"jsonnet": apiextensionsv1.JSONSchemaProps{
																Description: "Jsonnet holds options specific to Jsonnet",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"extVars": apiextensionsv1.JSONSchemaProps{
																		Description: "ExtVars is a list of Jsonnet External Variables",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"libs": apiextensionsv1.JSONSchemaProps{
																		Description: "Additional library search dirs",
																		Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:        "array",
																	},
																	"tlas": apiextensionsv1.JSONSchemaProps{
																		Description: "TLAS is a list of Jsonnet Top-level Arguments",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																},
																Type: "object",
															},
															"recurse": apiextensionsv1.JSONSchemaProps{
																Description: "Recurse specifies whether to scan a directory recursively for manifests",
																Type:        "boolean",
															},
														},
														Type: "object",
													},
													"helm": apiextensionsv1.JSONSchemaProps{
														Description: "Helm holds helm specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"fileParameters": apiextensionsv1.JSONSchemaProps{
																Description: "FileParameters are file parameters to the helm template",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the Helm parameter",
																			Type:        "string",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{
																			Description: "Path is the path to the file containing the values for the Helm parameter",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																Type:        "boolean",
															},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"forceString": apiextensionsv1.JSONSchemaProps{
																			Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																			Type:        "boolean",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the Helm parameter",
																			Type:        "string",
																		},
																		"value": apiextensionsv1.JSONSchemaProps{
																			Description: "Value is the value for the Helm parameter",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"passCredentials": apiextensionsv1.JSONSchemaProps{
																Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																Type:        "boolean",
															},
															"releaseName": apiextensionsv1.JSONSchemaProps{
																Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																Type:        "string",
															},
															"skipCrds": apiextensionsv1.JSONSchemaProps{
																Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																Type:        "boolean",
															},
															"valueFiles": apiextensionsv1.JSONSchemaProps{
																Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:        "array",
															},
															"values": apiextensionsv1.JSONSchemaProps{
																Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																Type:        "string",
															},
															"version": apiextensionsv1.JSONSchemaProps{
																Description: `Version is the Helm version to use for templating ("3")`,
																Type:        "string",
															},
														},
														Type: "object",
													},
													"kustomize": apiextensionsv1.JSONSchemaProps{
														Description: "Kustomize holds kustomize specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																Type:        "object",
															},
															"commonLabels": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																Type:        "object",
															},
															"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																Type:        "boolean",
															},
															"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																Type:        "boolean",
															},
															"images": apiextensionsv1.JSONSchemaProps{
																Description: "Images is a list of Kustomize image override specifications",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																	Type:        "string",
																}},
																Type: "array",
															},
															"namePrefix": apiextensionsv1.JSONSchemaProps{
																Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																Type:        "string",
															},
															"nameSuffix": apiextensionsv1.JSONSchemaProps{
																Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																Type:        "string",
															},
															"version": apiextensionsv1.JSONSchemaProps{
																Description: "Version controls which version of Kustomize to use for rendering manifests",
																Type:        "string",
															},
														},
														Type: "object",
													},
													"path": apiextensionsv1.JSONSchemaProps{
														Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
														Type:        "string",
													},
													"plugin": apiextensionsv1.JSONSchemaProps{
														Description: "Plugin holds config management plugin specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"env": apiextensionsv1.JSONSchemaProps{
																Description: "Env is a list of environment variable entries",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "EnvEntry represents an entry in the application's environment",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the variable, usually expressed in uppercase",
																			Type:        "string",
																		},
																		"value": apiextensionsv1.JSONSchemaProps{
																			Description: "Value is the value of the variable",
																			Type:        "string",
																		},
																	},
																	Required: []string{"name", "value"},
																	Type:     "object",
																}},
																Type: "array",
															},
															"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"array": apiextensionsv1.JSONSchemaProps{
																			Description: "Array is the value of an array type parameter.",
																			Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:        "array",
																		},
																		"map": apiextensionsv1.JSONSchemaProps{
																			AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																				Allows: true,
																				Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Description: "Map is the value of a map type parameter.",
																			Type:        "object",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name identifying a parameter.",
																			Type:        "string",
																		},
																		"string": apiextensionsv1.JSONSchemaProps{
																			Description: "String_ is the value of a string type parameter.",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
														},
														Type: "object",
													},
													"ref": apiextensionsv1.JSONSchemaProps{
														Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
														Type:        "string",
													},
													"repoURL": apiextensionsv1.JSONSchemaProps{
														Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
														Type:        "string",
													},
													"targetRevision": apiextensionsv1.JSONSchemaProps{
														Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
														Type:        "string",
													},
												},
												Required: []string{"repoURL"},
												Type:     "object",
											},
											"sources": apiextensionsv1.JSONSchemaProps{
												Description: "Source records the application source information of the sync, used for comparing auto-sync",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "ApplicationSource contains all required information about the source of an application",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"chart": apiextensionsv1.JSONSchemaProps{
															Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
															Type:        "string",
														},
														"directory": apiextensionsv1.JSONSchemaProps{
															Description: "Directory holds path/directory specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"exclude": apiextensionsv1.JSONSchemaProps{
																	Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																	Type:        "string",
																},
																"include": apiextensionsv1.JSONSchemaProps{
																	Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																	Type:        "string",
																},
																"jsonnet": apiextensionsv1.JSONSchemaProps{
																	Description: "Jsonnet holds options specific to Jsonnet",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"extVars": apiextensionsv1.JSONSchemaProps{
																			Description: "ExtVars is a list of Jsonnet External Variables",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																		"libs": apiextensionsv1.JSONSchemaProps{
																			Description: "Additional library search dirs",
																			Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:        "array",
																		},
																		"tlas": apiextensionsv1.JSONSchemaProps{
																			Description: "TLAS is a list of Jsonnet Top-level Arguments",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																	},
																	Type: "object",
																},
																"recurse": apiextensionsv1.JSONSchemaProps{
																	Description: "Recurse specifies whether to scan a directory recursively for manifests",
																	Type:        "boolean",
																},
															},
															Type: "object",
														},
														"helm": apiextensionsv1.JSONSchemaProps{
															Description: "Helm holds helm specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"fileParameters": apiextensionsv1.JSONSchemaProps{
																	Description: "FileParameters are file parameters to the helm template",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name of the Helm parameter",
																				Type:        "string",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{
																				Description: "Path is the path to the file containing the values for the Helm parameter",
																				Type:        "string",
																			},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
																"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																	Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																	Type:        "boolean",
																},
																"parameters": apiextensionsv1.JSONSchemaProps{
																	Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"forceString": apiextensionsv1.JSONSchemaProps{
																				Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																				Type:        "boolean",
																			},
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name of the Helm parameter",
																				Type:        "string",
																			},
																			"value": apiextensionsv1.JSONSchemaProps{
																				Description: "Value is the value for the Helm parameter",
																				Type:        "string",
																			},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
																"passCredentials": apiextensionsv1.JSONSchemaProps{
																	Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																	Type:        "boolean",
																},
																"releaseName": apiextensionsv1.JSONSchemaProps{
																	Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																	Type:        "string",
																},
																"skipCrds": apiextensionsv1.JSONSchemaProps{
																	Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																	Type:        "boolean",
																},
																"valueFiles": apiextensionsv1.JSONSchemaProps{
																	Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																	Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:        "array",
																},
																"values": apiextensionsv1.JSONSchemaProps{
																	Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																	Type:        "string",
																},
																"version": apiextensionsv1.JSONSchemaProps{
																	Description: `Version is the Helm version to use for templating ("3")`,
																	Type:        "string",
																},
															},
															Type: "object",
														},
														"kustomize": apiextensionsv1.JSONSchemaProps{
															Description: "Kustomize holds kustomize specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																	Type:        "object",
																},
																"commonLabels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																	Type:        "object",
																},
																"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																	Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																	Type:        "boolean",
																},
																"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																	Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																	Type:        "boolean",
																},
																"images": apiextensionsv1.JSONSchemaProps{
																	Description: "Images is a list of Kustomize image override specifications",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																		Type:        "string",
																	}},
																	Type: "array",
																},
																"namePrefix": apiextensionsv1.JSONSchemaProps{
																	Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																	Type:        "string",
																},
																"nameSuffix": apiextensionsv1.JSONSchemaProps{
																	Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																	Type:        "string",
																},
																"version": apiextensionsv1.JSONSchemaProps{
																	Description: "Version controls which version of Kustomize to use for rendering manifests",
																	Type:        "string",
																},
															},
															Type: "object",
														},
														"path": apiextensionsv1.JSONSchemaProps{
															Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
															Type:        "string",
														},
														"plugin": apiextensionsv1.JSONSchemaProps{
															Description: "Plugin holds config management plugin specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"env": apiextensionsv1.JSONSchemaProps{
																	Description: "Env is a list of environment variable entries",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "EnvEntry represents an entry in the application's environment",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name of the variable, usually expressed in uppercase",
																				Type:        "string",
																			},
																			"value": apiextensionsv1.JSONSchemaProps{
																				Description: "Value is the value of the variable",
																				Type:        "string",
																			},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"parameters": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"array": apiextensionsv1.JSONSchemaProps{
																				Description: "Array is the value of an array type parameter.",
																				Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:        "array",
																			},
																			"map": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Description: "Map is the value of a map type parameter.",
																				Type:        "object",
																			},
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name identifying a parameter.",
																				Type:        "string",
																			},
																			"string": apiextensionsv1.JSONSchemaProps{
																				Description: "String_ is the value of a string type parameter.",
																				Type:        "string",
																			},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
															},
															Type: "object",
														},
														"ref": apiextensionsv1.JSONSchemaProps{
															Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
															Type:        "string",
														},
														"repoURL": apiextensionsv1.JSONSchemaProps{
															Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
															Type:        "string",
														},
														"targetRevision": apiextensionsv1.JSONSchemaProps{
															Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
															Type:        "string",
														},
													},
													Required: []string{"repoURL"},
													Type:     "object",
												}},
												Type: "array",
											},
										},
										Required: []string{"revision"},
										Type:     "object",
									},
								},
								Required: []string{"operation", "phase", "startedAt"},
								Type:     "object",
							},
							"reconciledAt": apiextensionsv1.JSONSchemaProps{
								Description: "ReconciledAt indicates when the application state was reconciled using the latest git version",
								Format:      "date-time",
								Type:        "string",
							},
							"resourceHealthSource": apiextensionsv1.JSONSchemaProps{
								Description: "ResourceHealthSource indicates where the resource health status is stored: inline if not set or appTree",
								Type:        "string",
							},
							"resources": apiextensionsv1.JSONSchemaProps{
								Description: "Resources is a list of Kubernetes resources managed by this application",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ResourceStatus holds the current sync and health status of a resource TODO: describe members of this type",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"health": apiextensionsv1.JSONSchemaProps{
											Description: "HealthStatus contains information about the currently observed health state of an application or resource",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"message": apiextensionsv1.JSONSchemaProps{
													Description: "Message is a human-readable informational message describing the health status",
													Type:        "string",
												},
												"status": apiextensionsv1.JSONSchemaProps{
													Description: "Status holds the status code of the application or resource",
													Type:        "string",
												},
											},
											Type: "object",
										},
										"hook":            apiextensionsv1.JSONSchemaProps{Type: "boolean"},
										"kind":            apiextensionsv1.JSONSchemaProps{Type: "string"},
										"name":            apiextensionsv1.JSONSchemaProps{Type: "string"},
										"namespace":       apiextensionsv1.JSONSchemaProps{Type: "string"},
										"requiresPruning": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
										"status": apiextensionsv1.JSONSchemaProps{
											Description: "SyncStatusCode is a type which represents possible comparison results",
											Type:        "string",
										},
										"syncWave": apiextensionsv1.JSONSchemaProps{
											Format: "int64",
											Type:   "integer",
										},
										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Type: "object",
								}},
								Type: "array",
							},
							"sourceType": apiextensionsv1.JSONSchemaProps{
								Description: "SourceType specifies the type of this application",
								Type:        "string",
							},
							"sourceTypes": apiextensionsv1.JSONSchemaProps{
								Description: "SourceTypes specifies the type of the sources included in the application",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ApplicationSourceType specifies the type of the application's source",
									Type:        "string",
								}},
								Type: "array",
							},
							"summary": apiextensionsv1.JSONSchemaProps{
								Description: "Summary contains a list of URLs and container images used by this application",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"externalURLs": apiextensionsv1.JSONSchemaProps{
										Description: "ExternalURLs holds all external URLs of application child resources.",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
									"images": apiextensionsv1.JSONSchemaProps{
										Description: "Images holds all images of application child resources.",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
								},
								Type: "object",
							},
							"sync": apiextensionsv1.JSONSchemaProps{
								Description: "Sync contains information about the application's current sync status",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"comparedTo": apiextensionsv1.JSONSchemaProps{
										Description: "ComparedTo contains information about what has been compared",
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"destination": apiextensionsv1.JSONSchemaProps{
												Description: "Destination is a reference to the application's destination used for comparison",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"name": apiextensionsv1.JSONSchemaProps{
														Description: "Name is an alternate way of specifying the target cluster by its symbolic name",
														Type:        "string",
													},
													"namespace": apiextensionsv1.JSONSchemaProps{
														Description: "Namespace specifies the target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace",
														Type:        "string",
													},
													"server": apiextensionsv1.JSONSchemaProps{
														Description: "Server specifies the URL of the target cluster and must be set to the Kubernetes control plane API",
														Type:        "string",
													},
												},
												Type: "object",
											},
											"source": apiextensionsv1.JSONSchemaProps{
												Description: "Source is a reference to the application's source used for comparison",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"chart": apiextensionsv1.JSONSchemaProps{
														Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
														Type:        "string",
													},
													"directory": apiextensionsv1.JSONSchemaProps{
														Description: "Directory holds path/directory specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"exclude": apiextensionsv1.JSONSchemaProps{
																Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																Type:        "string",
															},
															"include": apiextensionsv1.JSONSchemaProps{
																Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																Type:        "string",
															},
															"jsonnet": apiextensionsv1.JSONSchemaProps{
																Description: "Jsonnet holds options specific to Jsonnet",
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"extVars": apiextensionsv1.JSONSchemaProps{
																		Description: "ExtVars is a list of Jsonnet External Variables",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"libs": apiextensionsv1.JSONSchemaProps{
																		Description: "Additional library search dirs",
																		Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:        "array",
																	},
																	"tlas": apiextensionsv1.JSONSchemaProps{
																		Description: "TLAS is a list of Jsonnet Top-level Arguments",
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																},
																Type: "object",
															},
															"recurse": apiextensionsv1.JSONSchemaProps{
																Description: "Recurse specifies whether to scan a directory recursively for manifests",
																Type:        "boolean",
															},
														},
														Type: "object",
													},
													"helm": apiextensionsv1.JSONSchemaProps{
														Description: "Helm holds helm specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"fileParameters": apiextensionsv1.JSONSchemaProps{
																Description: "FileParameters are file parameters to the helm template",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the Helm parameter",
																			Type:        "string",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{
																			Description: "Path is the path to the file containing the values for the Helm parameter",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																Type:        "boolean",
															},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"forceString": apiextensionsv1.JSONSchemaProps{
																			Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																			Type:        "boolean",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the Helm parameter",
																			Type:        "string",
																		},
																		"value": apiextensionsv1.JSONSchemaProps{
																			Description: "Value is the value for the Helm parameter",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"passCredentials": apiextensionsv1.JSONSchemaProps{
																Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																Type:        "boolean",
															},
															"releaseName": apiextensionsv1.JSONSchemaProps{
																Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																Type:        "string",
															},
															"skipCrds": apiextensionsv1.JSONSchemaProps{
																Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																Type:        "boolean",
															},
															"valueFiles": apiextensionsv1.JSONSchemaProps{
																Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:        "array",
															},
															"values": apiextensionsv1.JSONSchemaProps{
																Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																Type:        "string",
															},
															"version": apiextensionsv1.JSONSchemaProps{
																Description: `Version is the Helm version to use for templating ("3")`,
																Type:        "string",
															},
														},
														Type: "object",
													},
													"kustomize": apiextensionsv1.JSONSchemaProps{
														Description: "Kustomize holds kustomize specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																Type:        "object",
															},
															"commonLabels": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																Type:        "object",
															},
															"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																Type:        "boolean",
															},
															"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																Type:        "boolean",
															},
															"images": apiextensionsv1.JSONSchemaProps{
																Description: "Images is a list of Kustomize image override specifications",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																	Type:        "string",
																}},
																Type: "array",
															},
															"namePrefix": apiextensionsv1.JSONSchemaProps{
																Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																Type:        "string",
															},
															"nameSuffix": apiextensionsv1.JSONSchemaProps{
																Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																Type:        "string",
															},
															"version": apiextensionsv1.JSONSchemaProps{
																Description: "Version controls which version of Kustomize to use for rendering manifests",
																Type:        "string",
															},
														},
														Type: "object",
													},
													"path": apiextensionsv1.JSONSchemaProps{
														Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
														Type:        "string",
													},
													"plugin": apiextensionsv1.JSONSchemaProps{
														Description: "Plugin holds config management plugin specific options",
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"env": apiextensionsv1.JSONSchemaProps{
																Description: "Env is a list of environment variable entries",
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Description: "EnvEntry represents an entry in the application's environment",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name of the variable, usually expressed in uppercase",
																			Type:        "string",
																		},
																		"value": apiextensionsv1.JSONSchemaProps{
																			Description: "Value is the value of the variable",
																			Type:        "string",
																		},
																	},
																	Required: []string{"name", "value"},
																	Type:     "object",
																}},
																Type: "array",
															},
															"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"array": apiextensionsv1.JSONSchemaProps{
																			Description: "Array is the value of an array type parameter.",
																			Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:        "array",
																		},
																		"map": apiextensionsv1.JSONSchemaProps{
																			AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																				Allows: true,
																				Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Description: "Map is the value of a map type parameter.",
																			Type:        "object",
																		},
																		"name": apiextensionsv1.JSONSchemaProps{
																			Description: "Name is the name identifying a parameter.",
																			Type:        "string",
																		},
																		"string": apiextensionsv1.JSONSchemaProps{
																			Description: "String_ is the value of a string type parameter.",
																			Type:        "string",
																		},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
														},
														Type: "object",
													},
													"ref": apiextensionsv1.JSONSchemaProps{
														Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
														Type:        "string",
													},
													"repoURL": apiextensionsv1.JSONSchemaProps{
														Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
														Type:        "string",
													},
													"targetRevision": apiextensionsv1.JSONSchemaProps{
														Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
														Type:        "string",
													},
												},
												Required: []string{"repoURL"},
												Type:     "object",
											},
											"sources": apiextensionsv1.JSONSchemaProps{
												Description: "Sources is a reference to the application's multiple sources used for comparison",
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Description: "ApplicationSource contains all required information about the source of an application",
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"chart": apiextensionsv1.JSONSchemaProps{
															Description: "Chart is a Helm chart name, and must be specified for applications sourced from a Helm repo.",
															Type:        "string",
														},
														"directory": apiextensionsv1.JSONSchemaProps{
															Description: "Directory holds path/directory specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"exclude": apiextensionsv1.JSONSchemaProps{
																	Description: "Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during manifest generation",
																	Type:        "string",
																},
																"include": apiextensionsv1.JSONSchemaProps{
																	Description: "Include contains a glob pattern to match paths against that should be explicitly included during manifest generation",
																	Type:        "string",
																},
																"jsonnet": apiextensionsv1.JSONSchemaProps{
																	Description: "Jsonnet holds options specific to Jsonnet",
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"extVars": apiextensionsv1.JSONSchemaProps{
																			Description: "ExtVars is a list of Jsonnet External Variables",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																		"libs": apiextensionsv1.JSONSchemaProps{
																			Description: "Additional library search dirs",
																			Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:        "array",
																		},
																		"tlas": apiextensionsv1.JSONSchemaProps{
																			Description: "TLAS is a list of Jsonnet Top-level Arguments",
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Description: "JsonnetVar represents a variable to be passed to jsonnet during manifest generation",
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																	},
																	Type: "object",
																},
																"recurse": apiextensionsv1.JSONSchemaProps{
																	Description: "Recurse specifies whether to scan a directory recursively for manifests",
																	Type:        "boolean",
																},
															},
															Type: "object",
														},
														"helm": apiextensionsv1.JSONSchemaProps{
															Description: "Helm holds helm specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"fileParameters": apiextensionsv1.JSONSchemaProps{
																	Description: "FileParameters are file parameters to the helm template",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "HelmFileParameter is a file parameter that's passed to helm template during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name of the Helm parameter",
																				Type:        "string",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{
																				Description: "Path is the path to the file containing the values for the Helm parameter",
																				Type:        "string",
																			},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
																"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{
																	Description: "IgnoreMissingValueFiles prevents helm template from failing when valueFiles do not exist locally by not appending them to helm template --values",
																	Type:        "boolean",
																},
																"parameters": apiextensionsv1.JSONSchemaProps{
																	Description: "Parameters is a list of Helm parameters which are passed to the helm template command upon manifest generation",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "HelmParameter is a parameter that's passed to helm template during manifest generation",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"forceString": apiextensionsv1.JSONSchemaProps{
																				Description: "ForceString determines whether to tell Helm to interpret booleans and numbers as strings",
																				Type:        "boolean",
																			},
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name of the Helm parameter",
																				Type:        "string",
																			},
																			"value": apiextensionsv1.JSONSchemaProps{
																				Description: "Value is the value for the Helm parameter",
																				Type:        "string",
																			},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
																"passCredentials": apiextensionsv1.JSONSchemaProps{
																	Description: "PassCredentials pass credentials to all domains (Helm's --pass-credentials)",
																	Type:        "boolean",
																},
																"releaseName": apiextensionsv1.JSONSchemaProps{
																	Description: "ReleaseName is the Helm release name to use. If omitted it will use the application name",
																	Type:        "string",
																},
																"skipCrds": apiextensionsv1.JSONSchemaProps{
																	Description: "SkipCrds skips custom resource definition installation step (Helm's --skip-crds)",
																	Type:        "boolean",
																},
																"valueFiles": apiextensionsv1.JSONSchemaProps{
																	Description: "ValuesFiles is a list of Helm value files to use when generating a template",
																	Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:        "array",
																},
																"values": apiextensionsv1.JSONSchemaProps{
																	Description: "Values specifies Helm values to be passed to helm template, typically defined as a block",
																	Type:        "string",
																},
																"version": apiextensionsv1.JSONSchemaProps{
																	Description: `Version is the Helm version to use for templating ("3")`,
																	Type:        "string",
																},
															},
															Type: "object",
														},
														"kustomize": apiextensionsv1.JSONSchemaProps{
															Description: "Kustomize holds kustomize specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Description: "CommonAnnotations is a list of additional annotations to add to rendered manifests",
																	Type:        "object",
																},
																"commonLabels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Description: "CommonLabels is a list of additional labels to add to rendered manifests",
																	Type:        "object",
																},
																"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{
																	Description: "ForceCommonAnnotations specifies whether to force applying common annotations to resources for Kustomize apps",
																	Type:        "boolean",
																},
																"forceCommonLabels": apiextensionsv1.JSONSchemaProps{
																	Description: "ForceCommonLabels specifies whether to force applying common labels to resources for Kustomize apps",
																	Type:        "boolean",
																},
																"images": apiextensionsv1.JSONSchemaProps{
																	Description: "Images is a list of Kustomize image override specifications",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "KustomizeImage represents a Kustomize image definition in the format [old_image_name=]<image_name>:<image_tag>",
																		Type:        "string",
																	}},
																	Type: "array",
																},
																"namePrefix": apiextensionsv1.JSONSchemaProps{
																	Description: "NamePrefix is a prefix appended to resources for Kustomize apps",
																	Type:        "string",
																},
																"nameSuffix": apiextensionsv1.JSONSchemaProps{
																	Description: "NameSuffix is a suffix appended to resources for Kustomize apps",
																	Type:        "string",
																},
																"version": apiextensionsv1.JSONSchemaProps{
																	Description: "Version controls which version of Kustomize to use for rendering manifests",
																	Type:        "string",
																},
															},
															Type: "object",
														},
														"path": apiextensionsv1.JSONSchemaProps{
															Description: "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.",
															Type:        "string",
														},
														"plugin": apiextensionsv1.JSONSchemaProps{
															Description: "Plugin holds config management plugin specific options",
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"env": apiextensionsv1.JSONSchemaProps{
																	Description: "Env is a list of environment variable entries",
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Description: "EnvEntry represents an entry in the application's environment",
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name of the variable, usually expressed in uppercase",
																				Type:        "string",
																			},
																			"value": apiextensionsv1.JSONSchemaProps{
																				Description: "Value is the value of the variable",
																				Type:        "string",
																			},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"parameters": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"array": apiextensionsv1.JSONSchemaProps{
																				Description: "Array is the value of an array type parameter.",
																				Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:        "array",
																			},
																			"map": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Description: "Map is the value of a map type parameter.",
																				Type:        "object",
																			},
																			"name": apiextensionsv1.JSONSchemaProps{
																				Description: "Name is the name identifying a parameter.",
																				Type:        "string",
																			},
																			"string": apiextensionsv1.JSONSchemaProps{
																				Description: "String_ is the value of a string type parameter.",
																				Type:        "string",
																			},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
															},
															Type: "object",
														},
														"ref": apiextensionsv1.JSONSchemaProps{
															Description: "Ref is reference to another source within sources field. This field will not be used if used with a `source` tag.",
															Type:        "string",
														},
														"repoURL": apiextensionsv1.JSONSchemaProps{
															Description: "RepoURL is the URL to the repository (Git or Helm) that contains the application manifests",
															Type:        "string",
														},
														"targetRevision": apiextensionsv1.JSONSchemaProps{
															Description: "TargetRevision defines the revision of the source to sync the application to. In case of Git, this can be commit, tag, or branch. If omitted, will equal to HEAD. In case of Helm, this is a semver tag for the Chart's version.",
															Type:        "string",
														},
													},
													Required: []string{"repoURL"},
													Type:     "object",
												}},
												Type: "array",
											},
										},
										Required: []string{"destination"},
										Type:     "object",
									},
									"revision": apiextensionsv1.JSONSchemaProps{
										Description: "Revision contains information about the revision the comparison has been performed to",
										Type:        "string",
									},
									"revisions": apiextensionsv1.JSONSchemaProps{
										Description: "Revisions contains information about the revisions of multiple sources the comparison has been performed to",
										Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
										Type:        "array",
									},
									"status": apiextensionsv1.JSONSchemaProps{
										Description: "Status is the sync state of the comparison",
										Type:        "string",
									},
								},
								Required: []string{"status"},
								Type:     "object",
							},
						},
						Type: "object",
					},
				},
				Required: []string{"metadata", "spec"},
				Type:     "object",
			}},
			Served:       true,
			Storage:      true,
			Subresources: &apiextensionsv1.CustomResourceSubresources{},
		}},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apiextensions.k8s.io/v1",
		Kind:       "CustomResourceDefinition",
	},
}

var ApplicationsetsArgoprojIoCRD = &apiextensionsv1.CustomResourceDefinition{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "applicationsets.argoproj.io",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "applicationsets.argoproj.io",
	},
	Spec: apiextensionsv1.CustomResourceDefinitionSpec{
		Group: "argoproj.io",
		Names: apiextensionsv1.CustomResourceDefinitionNames{
			Kind:       "ApplicationSet",
			ListKind:   "ApplicationSetList",
			Plural:     "applicationsets",
			ShortNames: []string{"appset", "appsets"},
			Singular:   "applicationset",
		},
		Scope: apiextensionsv1.ResourceScope("Namespaced"),
		Versions: []apiextensionsv1.CustomResourceDefinitionVersion{apiextensionsv1.CustomResourceDefinitionVersion{
			Name: "v1alpha1",
			Schema: &apiextensionsv1.CustomResourceValidation{OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{
				Properties: map[string]apiextensionsv1.JSONSchemaProps{
					"apiVersion": apiextensionsv1.JSONSchemaProps{Type: "string"},
					"kind":       apiextensionsv1.JSONSchemaProps{Type: "string"},
					"metadata":   apiextensionsv1.JSONSchemaProps{Type: "object"},
					"spec": apiextensionsv1.JSONSchemaProps{
						Properties: map[string]apiextensionsv1.JSONSchemaProps{
							"generators": apiextensionsv1.JSONSchemaProps{
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"clusterDecisionResource": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"configMapRef": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"labelSelector": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"matchExpressions": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"values": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:  "array",
																	},
																},
																Required: []string{"key", "operator"},
																Type:     "object",
															}},
															Type: "array",
														},
														"matchLabels": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
													},
													Type: "object",
												},
												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
													Format: "int64",
													Type:   "integer",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
												"values": apiextensionsv1.JSONSchemaProps{
													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
														Allows: true,
														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Type: "object",
												},
											},
											Required: []string{"configMapRef"},
											Type:     "object",
										},
										"clusters": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"selector": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"matchExpressions": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"values": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:  "array",
																	},
																},
																Required: []string{"key", "operator"},
																Type:     "object",
															}},
															Type: "array",
														},
														"matchLabels": apiextensionsv1.JSONSchemaProps{
															AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																Allows: true,
																Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
													},
													Type: "object",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
												"values": apiextensionsv1.JSONSchemaProps{
													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
														Allows: true,
														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Type: "object",
												},
											},
											Type: "object",
										},
										"git": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"directories": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"exclude": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"path":    apiextensionsv1.JSONSchemaProps{Type: "string"},
														},
														Required: []string{"path"},
														Type:     "object",
													}},
													Type: "array",
												},
												"files": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{"path": apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Required:   []string{"path"},
														Type:       "object",
													}},
													Type: "array",
												},
												"pathParamPrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"repoURL":         apiextensionsv1.JSONSchemaProps{Type: "string"},
												"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
													Format: "int64",
													Type:   "integer",
												},
												"revision": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
											},
											Required: []string{"repoURL", "revision"},
											Type:     "object",
										},
										"list": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"elements": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)}},
													Type:  "array",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
											},
											Required: []string{"elements"},
											Type:     "object",
										},
										"matrix": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"generators": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"clusterDecisionResource": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"configMapRef": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"labelSelector": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"matchExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"values": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																					},
																					Required: []string{"key", "operator"},
																					Type:     "object",
																				}},
																				Type: "array",
																			},
																			"matchLabels": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																		},
																		Type: "object",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																	"values": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	},
																},
																Required: []string{"configMapRef"},
																Type:     "object",
															},
															"clusters": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"selector": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"matchExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"values": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																					},
																					Required: []string{"key", "operator"},
																					Type:     "object",
																				}},
																				Type: "array",
																			},
																			"matchLabels": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																		},
																		Type: "object",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																	"values": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	},
																},
																Type: "object",
															},
															"git": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"directories": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"path":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"path"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"files": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{"path": apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Required:   []string{"path"},
																			Type:       "object",
																		}},
																		Type: "array",
																	},
																	"pathParamPrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"repoURL":         apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"revision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Required: []string{"repoURL", "revision"},
																Type:     "object",
															},
															"list": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"elements": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)}},
																		Type:  "array",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Required: []string{"elements"},
																Type:     "object",
															},
															"matrix": apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)},
															"merge":  apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)},
															"pullRequest": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"bitbucketServer": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"basicAuth": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"passwordRef": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"key", "secretName"},
																						Type:     "object",
																					},
																					"username": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"passwordRef", "username"},
																				Type:     "object",
																			},
																			"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repo":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"api", "project", "repo"},
																		Type:     "object",
																	},
																	"filters": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{"branchMatch": apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:       "object",
																		}},
																		Type: "array",
																	},
																	"gitea": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"insecure": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"owner":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repo":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"api", "owner", "repo"},
																		Type:     "object",
																	},
																	"github": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api":           apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"appSecretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"labels": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"owner": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repo":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"owner", "repo"},
																		Type:     "object",
																	},
																	"gitlab": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"labels": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"project":          apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"pullRequestState": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"project"},
																		Type:     "object",
																	},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Type: "object",
															},
															"scmProvider": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"azureDevOps": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"accessTokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																			"allBranches":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":          apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"organization": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"teamProject":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"accessTokenRef", "organization", "teamProject"},
																		Type:     "object",
																	},
																	"bitbucket": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"appPasswordRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																			"owner": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"user":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"appPasswordRef", "owner", "user"},
																		Type:     "object",
																	},
																	"bitbucketServer": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":         apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"basicAuth": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"passwordRef": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"key", "secretName"},
																						Type:     "object",
																					},
																					"username": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"passwordRef", "username"},
																				Type:     "object",
																			},
																			"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"api", "project"},
																		Type:     "object",
																	},
																	"cloneProtocol": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"filters": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"branchMatch": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"labelMatch":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"pathsDoNotExist": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"pathsExist": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"repositoryMatch": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		}},
																		Type: "array",
																	},
																	"gitea": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":         apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"insecure":    apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"owner":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"api", "owner"},
																		Type:     "object",
																	},
																	"github": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":           apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"appSecretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"organization":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"organization"},
																		Type:     "object",
																	},
																	"gitlab": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":              apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"group":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"includeSubgroups": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"group"},
																		Type:     "object",
																	},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Type: "object",
															},
															"selector": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"matchExpressions": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"values": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																			},
																			Required: []string{"key", "operator"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"matchLabels": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	},
																},
																Type: "object",
															},
														},
														Type: "object",
													}},
													Type: "array",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
											},
											Required: []string{"generators"},
											Type:     "object",
										},
										"merge": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"generators": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"clusterDecisionResource": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"configMapRef": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"labelSelector": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"matchExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"values": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																					},
																					Required: []string{"key", "operator"},
																					Type:     "object",
																				}},
																				Type: "array",
																			},
																			"matchLabels": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																		},
																		Type: "object",
																	},
																	"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																	"values": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	},
																},
																Required: []string{"configMapRef"},
																Type:     "object",
															},
															"clusters": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"selector": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"matchExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"values": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																					},
																					Required: []string{"key", "operator"},
																					Type:     "object",
																				}},
																				Type: "array",
																			},
																			"matchLabels": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																		},
																		Type: "object",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																	"values": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	},
																},
																Type: "object",
															},
															"git": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"directories": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"path":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"path"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"files": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{"path": apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Required:   []string{"path"},
																			Type:       "object",
																		}},
																		Type: "array",
																	},
																	"pathParamPrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"repoURL":         apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"revision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Required: []string{"repoURL", "revision"},
																Type:     "object",
															},
															"list": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"elements": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)}},
																		Type:  "array",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Required: []string{"elements"},
																Type:     "object",
															},
															"matrix": apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)},
															"merge":  apiextensionsv1.JSONSchemaProps{XPreserveUnknownFields: P(true)},
															"pullRequest": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"bitbucketServer": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"basicAuth": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"passwordRef": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"key", "secretName"},
																						Type:     "object",
																					},
																					"username": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"passwordRef", "username"},
																				Type:     "object",
																			},
																			"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repo":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"api", "project", "repo"},
																		Type:     "object",
																	},
																	"filters": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{"branchMatch": apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:       "object",
																		}},
																		Type: "array",
																	},
																	"gitea": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"insecure": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"owner":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repo":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"api", "owner", "repo"},
																		Type:     "object",
																	},
																	"github": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api":           apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"appSecretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"labels": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"owner": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repo":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"owner", "repo"},
																		Type:     "object",
																	},
																	"gitlab": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"api": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"labels": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"project":          apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"pullRequestState": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"project"},
																		Type:     "object",
																	},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Type: "object",
															},
															"scmProvider": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"azureDevOps": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"accessTokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																			"allBranches":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":          apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"organization": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"teamProject":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"accessTokenRef", "organization", "teamProject"},
																		Type:     "object",
																	},
																	"bitbucket": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"appPasswordRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																			"owner": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"user":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"appPasswordRef", "owner", "user"},
																		Type:     "object",
																	},
																	"bitbucketServer": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":         apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"basicAuth": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"passwordRef": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"key", "secretName"},
																						Type:     "object",
																					},
																					"username": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"passwordRef", "username"},
																				Type:     "object",
																			},
																			"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"api", "project"},
																		Type:     "object",
																	},
																	"cloneProtocol": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"filters": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"branchMatch": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"labelMatch":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"pathsDoNotExist": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"pathsExist": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"repositoryMatch": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		}},
																		Type: "array",
																	},
																	"gitea": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":         apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"insecure":    apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"owner":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"api", "owner"},
																		Type:     "object",
																	},
																	"github": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":           apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"appSecretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"organization":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"organization"},
																		Type:     "object",
																	},
																	"gitlab": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"allBranches":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"api":              apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"group":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"includeSubgroups": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"tokenRef": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"key", "secretName"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"group"},
																		Type:     "object",
																	},
																	"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"template": apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"metadata": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"annotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"finalizers": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"labels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"spec": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"destination": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"jsonPointers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"kind"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"info": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																						Format: "int64",
																						Type:   "integer",
																					},
																					"source": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"directory": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"jsonnet": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"extVars": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																											"libs": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																												Type:  "array",
																											},
																											"tlas": apiextensionsv1.JSONSchemaProps{
																												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																													Properties: map[string]apiextensionsv1.JSONSchemaProps{
																														"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Required: []string{"name", "value"},
																													Type:     "object",
																												}},
																												Type: "array",
																											},
																										},
																										Type: "object",
																									},
																									"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"helm": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"fileParameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																												"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																									"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"valueFiles": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"kustomize": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"commonLabels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"images": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																										Type:  "array",
																									},
																									"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"plugin": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"env": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Required: []string{"name", "value"},
																											Type:     "object",
																										}},
																										Type: "array",
																									},
																									"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"parameters": apiextensionsv1.JSONSchemaProps{
																										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"array": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"map": apiextensionsv1.JSONSchemaProps{
																													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																														Allows: true,
																														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																													},
																													Type: "object",
																												},
																												"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																												"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										}},
																										Type: "array",
																									},
																								},
																								Type: "object",
																							},
																							"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"repoURL"},
																						Type:     "object",
																					},
																					"sources": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"directory": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"jsonnet": apiextensionsv1.JSONSchemaProps{
																											Properties: map[string]apiextensionsv1.JSONSchemaProps{
																												"extVars": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																												"libs": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																													Type:  "array",
																												},
																												"tlas": apiextensionsv1.JSONSchemaProps{
																													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																														Properties: map[string]apiextensionsv1.JSONSchemaProps{
																															"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																															"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																															"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Required: []string{"name", "value"},
																														Type:     "object",
																													}},
																													Type: "array",
																												},
																											},
																											Type: "object",
																										},
																										"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									},
																									Type: "object",
																								},
																								"helm": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"fileParameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																													"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																										"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"valueFiles": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"kustomize": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"commonLabels": apiextensionsv1.JSONSchemaProps{
																											AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																												Allows: true,
																												Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																											},
																											Type: "object",
																										},
																										"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"images": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																											Type:  "array",
																										},
																										"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"plugin": apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"env": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Required: []string{"name", "value"},
																												Type:     "object",
																											}},
																											Type: "array",
																										},
																										"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"parameters": apiextensionsv1.JSONSchemaProps{
																											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																												Properties: map[string]apiextensionsv1.JSONSchemaProps{
																													"array": apiextensionsv1.JSONSchemaProps{
																														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																														Type:  "array",
																													},
																													"map": apiextensionsv1.JSONSchemaProps{
																														AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																															Allows: true,
																															Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																														},
																														Type: "object",
																													},
																													"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																													"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																												},
																												Type: "object",
																											}},
																											Type: "array",
																										},
																									},
																									Type: "object",
																								},
																								"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"repoURL"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"syncPolicy": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"automated": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								},
																								Type: "object",
																							},
																							"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"annotations": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"labels": apiextensionsv1.JSONSchemaProps{
																										AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																											Allows: true,
																											Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																								},
																								Type: "object",
																							},
																							"retry": apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"backoff": apiextensionsv1.JSONSchemaProps{
																										Properties: map[string]apiextensionsv1.JSONSchemaProps{
																											"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																											"factor": apiextensionsv1.JSONSchemaProps{
																												Format: "int64",
																												Type:   "integer",
																											},
																											"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																										},
																										Type: "object",
																									},
																									"limit": apiextensionsv1.JSONSchemaProps{
																										Format: "int64",
																										Type:   "integer",
																									},
																								},
																								Type: "object",
																							},
																							"syncOptions": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																						},
																						Type: "object",
																					},
																				},
																				Required: []string{"destination", "project"},
																				Type:     "object",
																			},
																		},
																		Required: []string{"metadata", "spec"},
																		Type:     "object",
																	},
																},
																Type: "object",
															},
															"selector": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"matchExpressions": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"values": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																			},
																			Required: []string{"key", "operator"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"matchLabels": apiextensionsv1.JSONSchemaProps{
																		AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																			Allows: true,
																			Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	},
																},
																Type: "object",
															},
														},
														Type: "object",
													}},
													Type: "array",
												},
												"mergeKeys": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
													Type:  "array",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
											},
											Required: []string{"generators", "mergeKeys"},
											Type:     "object",
										},
										"pullRequest": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"bitbucketServer": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"api": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"basicAuth": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"passwordRef": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"key", "secretName"},
																	Type:     "object",
																},
																"username": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"passwordRef", "username"},
															Type:     "object",
														},
														"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"repo":    apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"api", "project", "repo"},
													Type:     "object",
												},
												"filters": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{"branchMatch": apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:       "object",
													}},
													Type: "array",
												},
												"gitea": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"api":      apiextensionsv1.JSONSchemaProps{Type: "string"},
														"insecure": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"owner":    apiextensionsv1.JSONSchemaProps{Type: "string"},
														"repo":     apiextensionsv1.JSONSchemaProps{Type: "string"},
														"tokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
													},
													Required: []string{"api", "owner", "repo"},
													Type:     "object",
												},
												"github": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"api":           apiextensionsv1.JSONSchemaProps{Type: "string"},
														"appSecretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"labels": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:  "array",
														},
														"owner": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"repo":  apiextensionsv1.JSONSchemaProps{Type: "string"},
														"tokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
													},
													Required: []string{"owner", "repo"},
													Type:     "object",
												},
												"gitlab": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"api": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"labels": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:  "array",
														},
														"project":          apiextensionsv1.JSONSchemaProps{Type: "string"},
														"pullRequestState": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"tokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
													},
													Required: []string{"project"},
													Type:     "object",
												},
												"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
													Format: "int64",
													Type:   "integer",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
											},
											Type: "object",
										},
										"scmProvider": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"azureDevOps": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"accessTokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
														"allBranches":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"api":          apiextensionsv1.JSONSchemaProps{Type: "string"},
														"organization": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"teamProject":  apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"accessTokenRef", "organization", "teamProject"},
													Type:     "object",
												},
												"bitbucket": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"appPasswordRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
														"owner": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"user":  apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"appPasswordRef", "owner", "user"},
													Type:     "object",
												},
												"bitbucketServer": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"api":         apiextensionsv1.JSONSchemaProps{Type: "string"},
														"basicAuth": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"passwordRef": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"key", "secretName"},
																	Type:     "object",
																},
																"username": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"passwordRef", "username"},
															Type:     "object",
														},
														"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"api", "project"},
													Type:     "object",
												},
												"cloneProtocol": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"filters": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"branchMatch": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"labelMatch":  apiextensionsv1.JSONSchemaProps{Type: "string"},
															"pathsDoNotExist": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:  "array",
															},
															"pathsExist": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:  "array",
															},
															"repositoryMatch": apiextensionsv1.JSONSchemaProps{Type: "string"},
														},
														Type: "object",
													}},
													Type: "array",
												},
												"gitea": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"allBranches": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"api":         apiextensionsv1.JSONSchemaProps{Type: "string"},
														"insecure":    apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"owner":       apiextensionsv1.JSONSchemaProps{Type: "string"},
														"tokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
													},
													Required: []string{"api", "owner"},
													Type:     "object",
												},
												"github": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"allBranches":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"api":           apiextensionsv1.JSONSchemaProps{Type: "string"},
														"appSecretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"organization":  apiextensionsv1.JSONSchemaProps{Type: "string"},
														"tokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
													},
													Required: []string{"organization"},
													Type:     "object",
												},
												"gitlab": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"allBranches":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"api":              apiextensionsv1.JSONSchemaProps{Type: "string"},
														"group":            apiextensionsv1.JSONSchemaProps{Type: "string"},
														"includeSubgroups": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														"tokenRef": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																"secretName": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Required: []string{"key", "secretName"},
															Type:     "object",
														},
													},
													Required: []string{"group"},
													Type:     "object",
												},
												"requeueAfterSeconds": apiextensionsv1.JSONSchemaProps{
													Format: "int64",
													Type:   "integer",
												},
												"template": apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"metadata": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"annotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"finalizers": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"labels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"spec": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"destination": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"jsonPointers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"kind"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"info": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
																	Format: "int64",
																	Type:   "integer",
																},
																"source": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"directory": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"jsonnet": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"extVars": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																						"libs": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																							Type:  "array",
																						},
																						"tlas": apiextensionsv1.JSONSchemaProps{
																							Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																								Properties: map[string]apiextensionsv1.JSONSchemaProps{
																									"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																									"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																									"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Required: []string{"name", "value"},
																								Type:     "object",
																							}},
																							Type: "array",
																						},
																					},
																					Type: "object",
																				},
																				"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"helm": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"fileParameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																							"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																				"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"valueFiles": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"kustomize": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"commonLabels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"images": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																					Type:  "array",
																				},
																				"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"plugin": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"env": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Required: []string{"name", "value"},
																						Type:     "object",
																					}},
																					Type: "array",
																				},
																				"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"parameters": apiextensionsv1.JSONSchemaProps{
																					Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"array": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"map": apiextensionsv1.JSONSchemaProps{
																								AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																									Allows: true,
																									Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																								},
																								Type: "object",
																							},
																							"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																							"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					}},
																					Type: "array",
																				},
																			},
																			Type: "object",
																		},
																		"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"repoURL"},
																	Type:     "object",
																},
																"sources": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"directory": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"jsonnet": apiextensionsv1.JSONSchemaProps{
																						Properties: map[string]apiextensionsv1.JSONSchemaProps{
																							"extVars": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																							"libs": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																								Type:  "array",
																							},
																							"tlas": apiextensionsv1.JSONSchemaProps{
																								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																									Properties: map[string]apiextensionsv1.JSONSchemaProps{
																										"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																										"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																										"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Required: []string{"name", "value"},
																									Type:     "object",
																								}},
																								Type: "array",
																							},
																						},
																						Type: "object",
																					},
																					"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				},
																				Type: "object",
																			},
																			"helm": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"fileParameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																								"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																					"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"valueFiles": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"kustomize": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"commonLabels": apiextensionsv1.JSONSchemaProps{
																						AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																							Allows: true,
																							Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																						},
																						Type: "object",
																					},
																					"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"images": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																						Type:  "array",
																					},
																					"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"plugin": apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"env": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Required: []string{"name", "value"},
																							Type:     "object",
																						}},
																						Type: "array",
																					},
																					"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"parameters": apiextensionsv1.JSONSchemaProps{
																						Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																							Properties: map[string]apiextensionsv1.JSONSchemaProps{
																								"array": apiextensionsv1.JSONSchemaProps{
																									Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																									Type:  "array",
																								},
																								"map": apiextensionsv1.JSONSchemaProps{
																									AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																										Allows: true,
																										Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																									},
																									Type: "object",
																								},
																								"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																								"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																							},
																							Type: "object",
																						}},
																						Type: "array",
																					},
																				},
																				Type: "object",
																			},
																			"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"repoURL"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"syncPolicy": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"automated": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			},
																			Type: "object",
																		},
																		"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"annotations": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"labels": apiextensionsv1.JSONSchemaProps{
																					AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																						Allows: true,
																						Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																			},
																			Type: "object",
																		},
																		"retry": apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"backoff": apiextensionsv1.JSONSchemaProps{
																					Properties: map[string]apiextensionsv1.JSONSchemaProps{
																						"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																						"factor": apiextensionsv1.JSONSchemaProps{
																							Format: "int64",
																							Type:   "integer",
																						},
																						"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																					},
																					Type: "object",
																				},
																				"limit": apiextensionsv1.JSONSchemaProps{
																					Format: "int64",
																					Type:   "integer",
																				},
																			},
																			Type: "object",
																		},
																		"syncOptions": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																	},
																	Type: "object",
																},
															},
															Required: []string{"destination", "project"},
															Type:     "object",
														},
													},
													Required: []string{"metadata", "spec"},
													Type:     "object",
												},
											},
											Type: "object",
										},
										"selector": apiextensionsv1.JSONSchemaProps{
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"matchExpressions": apiextensionsv1.JSONSchemaProps{
													Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
															"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"values": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:  "array",
															},
														},
														Required: []string{"key", "operator"},
														Type:     "object",
													}},
													Type: "array",
												},
												"matchLabels": apiextensionsv1.JSONSchemaProps{
													AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
														Allows: true,
														Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Type: "object",
												},
											},
											Type: "object",
										},
									},
									Type: "object",
								}},
								Type: "array",
							},
							"goTemplate": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
							"strategy": apiextensionsv1.JSONSchemaProps{
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"rollingSync": apiextensionsv1.JSONSchemaProps{
										Properties: map[string]apiextensionsv1.JSONSchemaProps{"steps": apiextensionsv1.JSONSchemaProps{
											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"matchExpressions": apiextensionsv1.JSONSchemaProps{
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"key":      apiextensionsv1.JSONSchemaProps{Type: "string"},
																"operator": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"values": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
															},
															Type: "object",
														}},
														Type: "array",
													},
													"maxUpdate": apiextensionsv1.JSONSchemaProps{
														AnyOf:        []apiextensionsv1.JSONSchemaProps{apiextensionsv1.JSONSchemaProps{Type: "integer"}, apiextensionsv1.JSONSchemaProps{Type: "string"}},
														XIntOrString: true,
													},
												},
												Type: "object",
											}},
											Type: "array",
										}},
										Type: "object",
									},
									"type": apiextensionsv1.JSONSchemaProps{Type: "string"},
								},
								Type: "object",
							},
							"syncPolicy": apiextensionsv1.JSONSchemaProps{
								Properties: map[string]apiextensionsv1.JSONSchemaProps{"preserveResourcesOnDeletion": apiextensionsv1.JSONSchemaProps{Type: "boolean"}},
								Type:       "object",
							},
							"template": apiextensionsv1.JSONSchemaProps{
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"metadata": apiextensionsv1.JSONSchemaProps{
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"annotations": apiextensionsv1.JSONSchemaProps{
												AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
													Allows: true,
													Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Type: "object",
											},
											"finalizers": apiextensionsv1.JSONSchemaProps{
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
												Type:  "array",
											},
											"labels": apiextensionsv1.JSONSchemaProps{
												AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
													Allows: true,
													Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Type: "object",
											},
											"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
											"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
										},
										Type: "object",
									},
									"spec": apiextensionsv1.JSONSchemaProps{
										Properties: map[string]apiextensionsv1.JSONSchemaProps{
											"destination": apiextensionsv1.JSONSchemaProps{
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
													"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
													"server":    apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Type: "object",
											},
											"ignoreDifferences": apiextensionsv1.JSONSchemaProps{
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"jqPathExpressions": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:  "array",
														},
														"jsonPointers": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:  "array",
														},
														"kind": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"managedFieldsManagers": apiextensionsv1.JSONSchemaProps{
															Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
															Type:  "array",
														},
														"name":      apiextensionsv1.JSONSchemaProps{Type: "string"},
														"namespace": apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"kind"},
													Type:     "object",
												}},
												Type: "array",
											},
											"info": apiextensionsv1.JSONSchemaProps{
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
														"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"name", "value"},
													Type:     "object",
												}},
												Type: "array",
											},
											"project": apiextensionsv1.JSONSchemaProps{Type: "string"},
											"revisionHistoryLimit": apiextensionsv1.JSONSchemaProps{
												Format: "int64",
												Type:   "integer",
											},
											"source": apiextensionsv1.JSONSchemaProps{
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
													"directory": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"jsonnet": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"extVars": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																	"libs": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																		Type:  "array",
																	},
																	"tlas": apiextensionsv1.JSONSchemaProps{
																		Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																			Properties: map[string]apiextensionsv1.JSONSchemaProps{
																				"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																				"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																				"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Required: []string{"name", "value"},
																			Type:     "object",
																		}},
																		Type: "array",
																	},
																},
																Type: "object",
															},
															"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														},
														Type: "object",
													},
													"helm": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"fileParameters": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																		"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
															"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
															"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"valueFiles": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:  "array",
															},
															"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
															"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
														},
														Type: "object",
													},
													"kustomize": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Type: "object",
															},
															"commonLabels": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Type: "object",
															},
															"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"images": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																Type:  "array",
															},
															"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
														},
														Type: "object",
													},
													"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
													"plugin": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"env": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Required: []string{"name", "value"},
																	Type:     "object",
																}},
																Type: "array",
															},
															"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
															"parameters": apiextensionsv1.JSONSchemaProps{
																Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"array": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																		"map": apiextensionsv1.JSONSchemaProps{
																			AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																				Allows: true,
																				Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																			},
																			Type: "object",
																		},
																		"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																		"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																}},
																Type: "array",
															},
														},
														Type: "object",
													},
													"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
													"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
													"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Required: []string{"repoURL"},
												Type:     "object",
											},
											"sources": apiextensionsv1.JSONSchemaProps{
												Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
													Properties: map[string]apiextensionsv1.JSONSchemaProps{
														"chart": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"directory": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"exclude": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"include": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"jsonnet": apiextensionsv1.JSONSchemaProps{
																	Properties: map[string]apiextensionsv1.JSONSchemaProps{
																		"extVars": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																		"libs": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																			Type:  "array",
																		},
																		"tlas": apiextensionsv1.JSONSchemaProps{
																			Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																				Properties: map[string]apiextensionsv1.JSONSchemaProps{
																					"code":  apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																					"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																					"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Required: []string{"name", "value"},
																				Type:     "object",
																			}},
																			Type: "array",
																		},
																	},
																	Type: "object",
																},
																"recurse": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															},
															Type: "object",
														},
														"helm": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"fileParameters": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
																"ignoreMissingValueFiles": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"parameters": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"forceString": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																			"name":        apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value":       apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
																"passCredentials": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"releaseName":     apiextensionsv1.JSONSchemaProps{Type: "string"},
																"skipCrds":        apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"valueFiles": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"values":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																"version": apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"kustomize": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"commonAnnotations": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"commonLabels": apiextensionsv1.JSONSchemaProps{
																	AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																		Allows: true,
																		Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																	},
																	Type: "object",
																},
																"forceCommonAnnotations": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"forceCommonLabels":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
																"images": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																	Type:  "array",
																},
																"namePrefix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"nameSuffix": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"version":    apiextensionsv1.JSONSchemaProps{Type: "string"},
															},
															Type: "object",
														},
														"path": apiextensionsv1.JSONSchemaProps{Type: "string"},
														"plugin": apiextensionsv1.JSONSchemaProps{
															Properties: map[string]apiextensionsv1.JSONSchemaProps{
																"env": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"value": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Required: []string{"name", "value"},
																		Type:     "object",
																	}},
																	Type: "array",
																},
																"name": apiextensionsv1.JSONSchemaProps{Type: "string"},
																"parameters": apiextensionsv1.JSONSchemaProps{
																	Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
																		Properties: map[string]apiextensionsv1.JSONSchemaProps{
																			"array": apiextensionsv1.JSONSchemaProps{
																				Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
																				Type:  "array",
																			},
																			"map": apiextensionsv1.JSONSchemaProps{
																				AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																					Allows: true,
																					Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																				},
																				Type: "object",
																			},
																			"name":   apiextensionsv1.JSONSchemaProps{Type: "string"},
																			"string": apiextensionsv1.JSONSchemaProps{Type: "string"},
																		},
																		Type: "object",
																	}},
																	Type: "array",
																},
															},
															Type: "object",
														},
														"ref":            apiextensionsv1.JSONSchemaProps{Type: "string"},
														"repoURL":        apiextensionsv1.JSONSchemaProps{Type: "string"},
														"targetRevision": apiextensionsv1.JSONSchemaProps{Type: "string"},
													},
													Required: []string{"repoURL"},
													Type:     "object",
												}},
												Type: "array",
											},
											"syncPolicy": apiextensionsv1.JSONSchemaProps{
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"automated": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"allowEmpty": apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"prune":      apiextensionsv1.JSONSchemaProps{Type: "boolean"},
															"selfHeal":   apiextensionsv1.JSONSchemaProps{Type: "boolean"},
														},
														Type: "object",
													},
													"managedNamespaceMetadata": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"annotations": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Type: "object",
															},
															"labels": apiextensionsv1.JSONSchemaProps{
																AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
																	Allows: true,
																	Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Type: "object",
															},
														},
														Type: "object",
													},
													"retry": apiextensionsv1.JSONSchemaProps{
														Properties: map[string]apiextensionsv1.JSONSchemaProps{
															"backoff": apiextensionsv1.JSONSchemaProps{
																Properties: map[string]apiextensionsv1.JSONSchemaProps{
																	"duration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																	"factor": apiextensionsv1.JSONSchemaProps{
																		Format: "int64",
																		Type:   "integer",
																	},
																	"maxDuration": apiextensionsv1.JSONSchemaProps{Type: "string"},
																},
																Type: "object",
															},
															"limit": apiextensionsv1.JSONSchemaProps{
																Format: "int64",
																Type:   "integer",
															},
														},
														Type: "object",
													},
													"syncOptions": apiextensionsv1.JSONSchemaProps{
														Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
														Type:  "array",
													},
												},
												Type: "object",
											},
										},
										Required: []string{"destination", "project"},
										Type:     "object",
									},
								},
								Required: []string{"metadata", "spec"},
								Type:     "object",
							},
						},
						Required: []string{"generators", "template"},
						Type:     "object",
					},
					"status": apiextensionsv1.JSONSchemaProps{
						Properties: map[string]apiextensionsv1.JSONSchemaProps{
							"applicationStatus": apiextensionsv1.JSONSchemaProps{
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"application": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"lastTransitionTime": apiextensionsv1.JSONSchemaProps{
											Format: "date-time",
											Type:   "string",
										},
										"message": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"status":  apiextensionsv1.JSONSchemaProps{Type: "string"},
										"step":    apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"application", "message", "status", "step"},
									Type:     "object",
								}},
								Type: "array",
							},
							"conditions": apiextensionsv1.JSONSchemaProps{
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"lastTransitionTime": apiextensionsv1.JSONSchemaProps{
											Format: "date-time",
											Type:   "string",
										},
										"message": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"reason":  apiextensionsv1.JSONSchemaProps{Type: "string"},
										"status":  apiextensionsv1.JSONSchemaProps{Type: "string"},
										"type":    apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"message", "reason", "status", "type"},
									Type:     "object",
								}},
								Type: "array",
							},
						},
						Type: "object",
					},
				},
				Required: []string{"metadata", "spec"},
				Type:     "object",
			}},
			Served:       true,
			Storage:      true,
			Subresources: &apiextensionsv1.CustomResourceSubresources{Status: &apiextensionsv1.CustomResourceSubresourceStatus{}},
		}},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apiextensions.k8s.io/v1",
		Kind:       "CustomResourceDefinition",
	},
}

var AppprojectsArgoprojIoCRD = &apiextensionsv1.CustomResourceDefinition{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "appprojects.argoproj.io",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "appprojects.argoproj.io",
	},
	Spec: apiextensionsv1.CustomResourceDefinitionSpec{
		Group: "argoproj.io",
		Names: apiextensionsv1.CustomResourceDefinitionNames{
			Kind:       "AppProject",
			ListKind:   "AppProjectList",
			Plural:     "appprojects",
			ShortNames: []string{"appproj", "appprojs"},
			Singular:   "appproject",
		},
		Scope: apiextensionsv1.ResourceScope("Namespaced"),
		Versions: []apiextensionsv1.CustomResourceDefinitionVersion{apiextensionsv1.CustomResourceDefinitionVersion{
			Name: "v1alpha1",
			Schema: &apiextensionsv1.CustomResourceValidation{OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{
				Description: "AppProject provides a logical grouping of applications, providing controls for: * where the apps may deploy to (cluster whitelist) * what may be deployed (repository whitelist, resource whitelist/blacklist) * who can access these applications (roles, OIDC group claims bindings) * and what they can do (RBAC policies) * automation access to these roles (JWT tokens)",
				Properties: map[string]apiextensionsv1.JSONSchemaProps{
					"apiVersion": apiextensionsv1.JSONSchemaProps{
						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",
					},
					"kind": apiextensionsv1.JSONSchemaProps{
						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",
					},
					"metadata": apiextensionsv1.JSONSchemaProps{Type: "object"},
					"spec": apiextensionsv1.JSONSchemaProps{
						Description: "AppProjectSpec is the specification of an AppProject",
						Properties: map[string]apiextensionsv1.JSONSchemaProps{
							"clusterResourceBlacklist": apiextensionsv1.JSONSchemaProps{
								Description: "ClusterResourceBlacklist contains list of blacklisted cluster level resources",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"kind":  apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"group", "kind"},
									Type:     "object",
								}},
								Type: "array",
							},
							"clusterResourceWhitelist": apiextensionsv1.JSONSchemaProps{
								Description: "ClusterResourceWhitelist contains list of whitelisted cluster level resources",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"kind":  apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"group", "kind"},
									Type:     "object",
								}},
								Type: "array",
							},
							"description": apiextensionsv1.JSONSchemaProps{
								Description: "Description contains optional project description",
								Type:        "string",
							},
							"destinations": apiextensionsv1.JSONSchemaProps{
								Description: "Destinations contains list of destinations available for deployment",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ApplicationDestination holds information about the application's destination",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"name": apiextensionsv1.JSONSchemaProps{
											Description: "Name is an alternate way of specifying the target cluster by its symbolic name",
											Type:        "string",
										},
										"namespace": apiextensionsv1.JSONSchemaProps{
											Description: "Namespace specifies the target namespace for the application's resources. The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace",
											Type:        "string",
										},
										"server": apiextensionsv1.JSONSchemaProps{
											Description: "Server specifies the URL of the target cluster and must be set to the Kubernetes control plane API",
											Type:        "string",
										},
									},
									Type: "object",
								}},
								Type: "array",
							},
							"namespaceResourceBlacklist": apiextensionsv1.JSONSchemaProps{
								Description: "NamespaceResourceBlacklist contains list of blacklisted namespace level resources",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"kind":  apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"group", "kind"},
									Type:     "object",
								}},
								Type: "array",
							},
							"namespaceResourceWhitelist": apiextensionsv1.JSONSchemaProps{
								Description: "NamespaceResourceWhitelist contains list of whitelisted namespace level resources",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
										"kind":  apiextensionsv1.JSONSchemaProps{Type: "string"},
									},
									Required: []string{"group", "kind"},
									Type:     "object",
								}},
								Type: "array",
							},
							"orphanedResources": apiextensionsv1.JSONSchemaProps{
								Description: "OrphanedResources specifies if controller should monitor orphaned resources of apps in this project",
								Properties: map[string]apiextensionsv1.JSONSchemaProps{
									"ignore": apiextensionsv1.JSONSchemaProps{
										Description: "Ignore contains a list of resources that are to be excluded from orphaned resources monitoring",
										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
											Description: "OrphanedResourceKey is a reference to a resource to be ignored from",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"group": apiextensionsv1.JSONSchemaProps{Type: "string"},
												"kind":  apiextensionsv1.JSONSchemaProps{Type: "string"},
												"name":  apiextensionsv1.JSONSchemaProps{Type: "string"},
											},
											Type: "object",
										}},
										Type: "array",
									},
									"warn": apiextensionsv1.JSONSchemaProps{
										Description: "Warn indicates if warning condition should be created for apps which have orphaned resources",
										Type:        "boolean",
									},
								},
								Type: "object",
							},
							"permitOnlyProjectScopedClusters": apiextensionsv1.JSONSchemaProps{
								Description: "PermitOnlyProjectScopedClusters determines whether destinations can only reference clusters which are project-scoped",
								Type:        "boolean",
							},
							"roles": apiextensionsv1.JSONSchemaProps{
								Description: "Roles are user defined RBAC roles associated with this project",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "ProjectRole represents a role that has access to a project",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"description": apiextensionsv1.JSONSchemaProps{
											Description: "Description is a description of the role",
											Type:        "string",
										},
										"groups": apiextensionsv1.JSONSchemaProps{
											Description: "Groups are a list of OIDC group claims bound to this role",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
										"jwtTokens": apiextensionsv1.JSONSchemaProps{
											Description: "JWTTokens are a list of generated JWT tokens bound to this role",
											Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
												Description: "JWTToken holds the issuedAt and expiresAt values of a token",
												Properties: map[string]apiextensionsv1.JSONSchemaProps{
													"exp": apiextensionsv1.JSONSchemaProps{
														Format: "int64",
														Type:   "integer",
													},
													"iat": apiextensionsv1.JSONSchemaProps{
														Format: "int64",
														Type:   "integer",
													},
													"id": apiextensionsv1.JSONSchemaProps{Type: "string"},
												},
												Required: []string{"iat"},
												Type:     "object",
											}},
											Type: "array",
										},
										"name": apiextensionsv1.JSONSchemaProps{
											Description: "Name is a name for this role",
											Type:        "string",
										},
										"policies": apiextensionsv1.JSONSchemaProps{
											Description: "Policies Stores a list of casbin formatted strings that define access policies for the role in the project",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
									},
									Required: []string{"name"},
									Type:     "object",
								}},
								Type: "array",
							},
							"signatureKeys": apiextensionsv1.JSONSchemaProps{
								Description: "SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "SignatureKey is the specification of a key required to verify commit signatures with",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{"keyID": apiextensionsv1.JSONSchemaProps{
										Description: "The ID of the key in hexadecimal notation",
										Type:        "string",
									}},
									Required: []string{"keyID"},
									Type:     "object",
								}},
								Type: "array",
							},
							"sourceNamespaces": apiextensionsv1.JSONSchemaProps{
								Description: "SourceNamespaces defines the namespaces application resources are allowed to be created in",
								Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
								Type:        "array",
							},
							"sourceRepos": apiextensionsv1.JSONSchemaProps{
								Description: "SourceRepos contains list of repository URLs which can be used for deployment",
								Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
								Type:        "array",
							},
							"syncWindows": apiextensionsv1.JSONSchemaProps{
								Description: "SyncWindows controls when syncs can be run for apps in this project",
								Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{
										"applications": apiextensionsv1.JSONSchemaProps{
											Description: "Applications contains a list of applications that the window will apply to",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
										"clusters": apiextensionsv1.JSONSchemaProps{
											Description: "Clusters contains a list of clusters that the window will apply to",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
										"duration": apiextensionsv1.JSONSchemaProps{
											Description: "Duration is the amount of time the sync window will be open",
											Type:        "string",
										},
										"kind": apiextensionsv1.JSONSchemaProps{
											Description: "Kind defines if the window allows or blocks syncs",
											Type:        "string",
										},
										"manualSync": apiextensionsv1.JSONSchemaProps{
											Description: "ManualSync enables manual syncs when they would otherwise be blocked",
											Type:        "boolean",
										},
										"namespaces": apiextensionsv1.JSONSchemaProps{
											Description: "Namespaces contains a list of namespaces that the window will apply to",
											Items:       &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{Type: "string"}},
											Type:        "array",
										},
										"schedule": apiextensionsv1.JSONSchemaProps{
											Description: "Schedule is the time the window will begin, specified in cron format",
											Type:        "string",
										},
										"timeZone": apiextensionsv1.JSONSchemaProps{
											Description: "TimeZone of the sync that will be applied to the schedule",
											Type:        "string",
										},
									},
									Type: "object",
								}},
								Type: "array",
							},
						},
						Type: "object",
					},
					"status": apiextensionsv1.JSONSchemaProps{
						Description: "AppProjectStatus contains status information for AppProject CRs",
						Properties: map[string]apiextensionsv1.JSONSchemaProps{"jwtTokensByRole": apiextensionsv1.JSONSchemaProps{
							AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{
								Allows: true,
								Schema: &apiextensionsv1.JSONSchemaProps{
									Description: "JWTTokens represents a list of JWT tokens",
									Properties: map[string]apiextensionsv1.JSONSchemaProps{"items": apiextensionsv1.JSONSchemaProps{
										Items: &apiextensionsv1.JSONSchemaPropsOrArray{Schema: &apiextensionsv1.JSONSchemaProps{
											Description: "JWTToken holds the issuedAt and expiresAt values of a token",
											Properties: map[string]apiextensionsv1.JSONSchemaProps{
												"exp": apiextensionsv1.JSONSchemaProps{
													Format: "int64",
													Type:   "integer",
												},
												"iat": apiextensionsv1.JSONSchemaProps{
													Format: "int64",
													Type:   "integer",
												},
												"id": apiextensionsv1.JSONSchemaProps{Type: "string"},
											},
											Required: []string{"iat"},
											Type:     "object",
										}},
										Type: "array",
									}},
									Type: "object",
								},
							},
							Description: "JWTTokensByRole contains a list of JWT tokens issued for a given role",
							Type:        "object",
						}},
						Type: "object",
					},
				},
				Required: []string{"metadata", "spec"},
				Type:     "object",
			}},
			Served:  true,
			Storage: true,
		}},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apiextensions.k8s.io/v1",
		Kind:       "CustomResourceDefinition",
	},
}
-- out/import/argocd/deployment.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	intstr "k8s.io/apimachinery/pkg/util/intstr"
)

var ApplicationsetControllerDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "controller",
			"app.kubernetes.io/name":      "argocd-applicationset-controller",
			"app.kubernetes.io/part-of":   "argocd-applicationset",
		},
		Name: "argocd-applicationset-controller",
	},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-applicationset-controller"}},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-applicationset-controller"}},
			Spec: corev1.PodSpec{
				Containers: []corev1.Container{corev1.Container{
					Command: []string{"entrypoint.sh", "argocd-applicationset-controller"},
					Env: []corev1.EnvVar{corev1.EnvVar{
						Name:      "NAMESPACE",
						ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{FieldPath: "metadata.namespace"}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_LEADER_ELECTION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.enable.leader.election",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_NAMESPACE",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.namespace",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "repo.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_POLICY",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.policy",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_DEBUG",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.debug",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_LOGFORMAT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.log.format",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_LOGLEVEL",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.log.level",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_DRY_RUN",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.dryrun",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_GIT_MODULES_ENABLED",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.enable.git.submodule",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_SYNCS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "applicationsetcontroller.enable.progressive.syncs",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}},
					Image:           "quay.io/argoproj/argocd:v2.6.0",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					Name:            "argocd-applicationset-controller",
					Ports: []corev1.ContainerPort{corev1.ContainerPort{
						ContainerPort: int32(7000),
						Name:          "webhook",
					}, corev1.ContainerPort{
						ContainerPort: int32(8080),
						Name:          "metrics",
					}},
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/app/config/ssh",
						Name:      "ssh-known-hosts",
					}, corev1.VolumeMount{
						MountPath: "/app/config/tls",
						Name:      "tls-certs",
					}, corev1.VolumeMount{
						MountPath: "/app/config/gpg/source",
						Name:      "gpg-keys",
					}, corev1.VolumeMount{
						MountPath: "/app/config/gpg/keys",
						Name:      "gpg-keyring",
					}, corev1.VolumeMount{
						MountPath: "/tmp",
						Name:      "tmp",
					}},
				}},
				ServiceAccountName: "argocd-applicationset-controller",
				Volumes: []corev1.Volume{corev1.Volume{
					Name:         "ssh-known-hosts",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-ssh-known-hosts-cm"}}},
				}, corev1.Volume{
					Name:         "tls-certs",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-tls-certs-cm"}}},
				}, corev1.Volume{
					Name:         "gpg-keys",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-gpg-keys-cm"}}},
				}, corev1.Volume{
					Name:         "gpg-keyring",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "tmp",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var DexServerDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "dex-server",
			"app.kubernetes.io/name":      "argocd-dex-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-dex-server",
	},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-dex-server"}},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-dex-server"}},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{PodAntiAffinity: &corev1.PodAntiAffinity{PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/part-of": "argocd"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(5),
				}}}},
				Containers: []corev1.Container{corev1.Container{
					Command: []string{"/shared/argocd-dex", "rundex"},
					Env: []corev1.EnvVar{corev1.EnvVar{
						Name: "ARGOCD_DEX_SERVER_DISABLE_TLS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "dexserver.disable.tls",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}},
					Image:           "ghcr.io/dexidp/dex:v2.35.3",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					Name:            "dex",
					Ports:           []corev1.ContainerPort{corev1.ContainerPort{ContainerPort: int32(5556)}, corev1.ContainerPort{ContainerPort: int32(5557)}, corev1.ContainerPort{ContainerPort: int32(5558)}},
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/shared",
						Name:      "static-files",
					}, corev1.VolumeMount{
						MountPath: "/tmp",
						Name:      "dexconfig",
					}, corev1.VolumeMount{
						MountPath: "/tls",
						Name:      "argocd-dex-server-tls",
					}},
				}},
				InitContainers: []corev1.Container{corev1.Container{
					Command:         []string{"cp", "-n", "/usr/local/bin/argocd", "/shared/argocd-dex"},
					Image:           "quay.io/argoproj/argocd:v2.6.0",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					Name:            "copyutil",
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/shared",
						Name:      "static-files",
					}, corev1.VolumeMount{
						MountPath: "/tmp",
						Name:      "dexconfig",
					}},
				}},
				ServiceAccountName: "argocd-dex-server",
				Volumes: []corev1.Volume{corev1.Volume{
					Name:         "static-files",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "dexconfig",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name: "argocd-dex-server-tls",
					VolumeSource: corev1.VolumeSource{Secret: &corev1.SecretVolumeSource{
						Items: []corev1.KeyToPath{corev1.KeyToPath{
							Key:  "tls.crt",
							Path: "tls.crt",
						}, corev1.KeyToPath{
							Key:  "tls.key",
							Path: "tls.key",
						}, corev1.KeyToPath{
							Key:  "ca.crt",
							Path: "ca.crt",
						}},
						Optional:   P(true),
						SecretName: "argocd-dex-server-tls",
					}},
				}},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var NotificationsControllerDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-notifications-controller"},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-notifications-controller"}},
		Strategy: appsv1.DeploymentStrategy{Type: appsv1.DeploymentStrategyType("Recreate")},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-notifications-controller"}},
			Spec: corev1.PodSpec{
				Containers: []corev1.Container{corev1.Container{
					Command:         []string{"argocd-notifications"},
					Image:           "quay.io/argoproj/argocd:v2.6.0",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					LivenessProbe:   &corev1.Probe{ProbeHandler: corev1.ProbeHandler{TCPSocket: &corev1.TCPSocketAction{Port: intstr.IntOrString{IntVal: int32(9001)}}}},
					Name:            "argocd-notifications-controller",
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/app/config/tls",
						Name:      "tls-certs",
					}, corev1.VolumeMount{
						MountPath: "/app/config/reposerver/tls",
						Name:      "argocd-repo-server-tls",
					}},
					WorkingDir: "/app",
				}},
				SecurityContext: &corev1.PodSecurityContext{
					RunAsNonRoot:   P(true),
					SeccompProfile: &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
				},
				ServiceAccountName: "argocd-notifications-controller",
				Volumes: []corev1.Volume{corev1.Volume{
					Name:         "tls-certs",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-tls-certs-cm"}}},
				}, corev1.Volume{
					Name: "argocd-repo-server-tls",
					VolumeSource: corev1.VolumeSource{Secret: &corev1.SecretVolumeSource{
						Items: []corev1.KeyToPath{corev1.KeyToPath{
							Key:  "tls.crt",
							Path: "tls.crt",
						}, corev1.KeyToPath{
							Key:  "tls.key",
							Path: "tls.key",
						}, corev1.KeyToPath{
							Key:  "ca.crt",
							Path: "ca.crt",
						}},
						Optional:   P(true),
						SecretName: "argocd-repo-server-tls",
					}},
				}},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var RedisDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "redis",
			"app.kubernetes.io/name":      "argocd-redis",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-redis",
	},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-redis"}},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-redis"}},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{PodAntiAffinity: &corev1.PodAntiAffinity{PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-redis"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(100),
				}, corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/part-of": "argocd"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(5),
				}}}},
				Containers: []corev1.Container{corev1.Container{
					Args:            []string{"--save", "--appendonly", "no"},
					Image:           "redis:7.0.7-alpine",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					Name:            "redis",
					Ports:           []corev1.ContainerPort{corev1.ContainerPort{ContainerPort: int32(6379)}},
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
					},
				}},
				SecurityContext: &corev1.PodSecurityContext{
					RunAsNonRoot:   P(true),
					RunAsUser:      P(int64(999)),
					SeccompProfile: &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
				},
				ServiceAccountName: "argocd-redis",
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var RepoServerDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "repo-server",
			"app.kubernetes.io/name":      "argocd-repo-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-repo-server",
	},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-repo-server"}},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-repo-server"}},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{PodAntiAffinity: &corev1.PodAntiAffinity{PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-repo-server"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(100),
				}, corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/part-of": "argocd"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(5),
				}}}},
				AutomountServiceAccountToken: P(false),
				Containers: []corev1.Container{corev1.Container{
					Command: []string{"sh", "-c", "entrypoint.sh argocd-repo-server --redis argocd-redis:6379"},
					Env: []corev1.EnvVar{corev1.EnvVar{
						Name: "ARGOCD_RECONCILIATION_TIMEOUT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "timeout.reconciliation",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_LOGFORMAT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.log.format",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_LOGLEVEL",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.log.level",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_PARALLELISM_LIMIT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.parallelism.limit",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_DISABLE_TLS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.disable.tls",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_TLS_MIN_VERSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.tls.minversion",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_TLS_MAX_VERSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.tls.maxversion",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_TLS_CIPHERS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.tls.ciphers",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.repo.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDIS_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDIS_COMPRESSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.compression",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDISDB",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.db",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_DEFAULT_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.default.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_OTLP_ADDRESS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "otlp.address",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_MAX_COMBINED_DIRECTORY_MANIFESTS_SIZE",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.max.combined.directory.manifests.size",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_PLUGIN_TAR_EXCLUSIONS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.plugin.tar.exclusions",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_ALLOW_OUT_OF_BOUNDS_SYMLINKS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.allow.oob.symlinks",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_STREAMED_MANIFEST_MAX_TAR_SIZE",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.streamed.manifest.max.tar.size",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_REPO_SERVER_STREAMED_MANIFEST_MAX_EXTRACTED_SIZE",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.streamed.manifest.max.extracted.size",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_GIT_MODULES_ENABLED",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "reposerver.enable.git.submodule",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name:  "HELM_CACHE_HOME",
						Value: "/helm-working-dir",
					}, corev1.EnvVar{
						Name:  "HELM_CONFIG_HOME",
						Value: "/helm-working-dir",
					}, corev1.EnvVar{
						Name:  "HELM_DATA_HOME",
						Value: "/helm-working-dir",
					}},
					Image:           "quay.io/argoproj/argocd:v2.6.0",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					LivenessProbe: &corev1.Probe{
						FailureThreshold:    int32(3),
						InitialDelaySeconds: int32(30),
						PeriodSeconds:       int32(30),
						ProbeHandler: corev1.ProbeHandler{HTTPGet: &corev1.HTTPGetAction{
							Path: "/healthz?full=true",
							Port: intstr.IntOrString{IntVal: int32(8084)},
						}},
						TimeoutSeconds: int32(5),
					},
					Name:  "argocd-repo-server",
					Ports: []corev1.ContainerPort{corev1.ContainerPort{ContainerPort: int32(8081)}, corev1.ContainerPort{ContainerPort: int32(8084)}},
					ReadinessProbe: &corev1.Probe{
						InitialDelaySeconds: int32(5),
						PeriodSeconds:       int32(10),
						ProbeHandler: corev1.ProbeHandler{HTTPGet: &corev1.HTTPGetAction{
							Path: "/healthz",
							Port: intstr.IntOrString{IntVal: int32(8084)},
						}},
					},
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/app/config/ssh",
						Name:      "ssh-known-hosts",
					}, corev1.VolumeMount{
						MountPath: "/app/config/tls",
						Name:      "tls-certs",
					}, corev1.VolumeMount{
						MountPath: "/app/config/gpg/source",
						Name:      "gpg-keys",
					}, corev1.VolumeMount{
						MountPath: "/app/config/gpg/keys",
						Name:      "gpg-keyring",
					}, corev1.VolumeMount{
						MountPath: "/app/config/reposerver/tls",
						Name:      "argocd-repo-server-tls",
					}, corev1.VolumeMount{
						MountPath: "/tmp",
						Name:      "tmp",
					}, corev1.VolumeMount{
						MountPath: "/helm-working-dir",
						Name:      "helm-working-dir",
					}, corev1.VolumeMount{
						MountPath: "/home/argocd/cmp-server/plugins",
						Name:      "plugins",
					}},
				}},
				InitContainers: []corev1.Container{corev1.Container{
					Command: []string{"cp", "-n", "/usr/local/bin/argocd", "/var/run/argocd/argocd-cmp-server"},
					Image:   "quay.io/argoproj/argocd:v2.6.0",
					Name:    "copyutil",
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/var/run/argocd",
						Name:      "var-files",
					}},
				}},
				ServiceAccountName: "argocd-repo-server",
				Volumes: []corev1.Volume{corev1.Volume{
					Name:         "ssh-known-hosts",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-ssh-known-hosts-cm"}}},
				}, corev1.Volume{
					Name:         "tls-certs",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-tls-certs-cm"}}},
				}, corev1.Volume{
					Name:         "gpg-keys",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-gpg-keys-cm"}}},
				}, corev1.Volume{
					Name:         "gpg-keyring",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "tmp",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "helm-working-dir",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name: "argocd-repo-server-tls",
					VolumeSource: corev1.VolumeSource{Secret: &corev1.SecretVolumeSource{
						Items: []corev1.KeyToPath{corev1.KeyToPath{
							Key:  "tls.crt",
							Path: "tls.crt",
						}, corev1.KeyToPath{
							Key:  "tls.key",
							Path: "tls.key",
						}, corev1.KeyToPath{
							Key:  "ca.crt",
							Path: "ca.crt",
						}},
						Optional:   P(true),
						SecretName: "argocd-repo-server-tls",
					}},
				}, corev1.Volume{
					Name:         "var-files",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "plugins",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var ServerDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-server"}},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-server"}},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{PodAntiAffinity: &corev1.PodAntiAffinity{PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-server"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(100),
				}, corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/part-of": "argocd"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(5),
				}}}},
				Containers: []corev1.Container{corev1.Container{
					Command: []string{"argocd-server"},
					Env: []corev1.EnvVar{corev1.EnvVar{
						Name: "ARGOCD_SERVER_INSECURE",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.insecure",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_BASEHREF",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.basehref",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_ROOTPATH",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.rootpath",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_LOGFORMAT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.log.format",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_LOG_LEVEL",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.log.level",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_REPO_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "repo.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_DEX_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.dex.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_DISABLE_AUTH",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.disable.auth",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_ENABLE_GZIP",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.enable.gzip",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_REPO_SERVER_TIMEOUT_SECONDS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.repo.server.timeout.seconds",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_X_FRAME_OPTIONS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.x.frame.options",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_CONTENT_SECURITY_POLICY",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.content.security.policy",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_REPO_SERVER_PLAINTEXT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.repo.server.plaintext",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_REPO_SERVER_STRICT_TLS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.repo.server.strict.tls",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_DEX_SERVER_PLAINTEXT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.dex.server.plaintext",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_DEX_SERVER_STRICT_TLS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.dex.server.strict.tls",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_TLS_MIN_VERSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.tls.minversion",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_TLS_MAX_VERSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.tls.maxversion",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_TLS_CIPHERS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.tls.ciphers",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_CONNECTION_STATUS_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.connection.status.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_OIDC_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.oidc.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_LOGIN_ATTEMPTS_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.login.attempts.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_STATIC_ASSETS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.staticassets",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APP_STATE_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.app.state.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDIS_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDIS_COMPRESSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.compression",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDISDB",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.db",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_DEFAULT_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.default.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_MAX_COOKIE_NUMBER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.http.cookie.maxnumber",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_OTLP_ADDRESS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "otlp.address",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_NAMESPACES",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "application.namespaces",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_SERVER_ENABLE_PROXY_EXTENSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "server.enable.proxy.extension",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}},
					Image:           "quay.io/argoproj/argocd:v2.6.0",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					LivenessProbe: &corev1.Probe{
						InitialDelaySeconds: int32(3),
						PeriodSeconds:       int32(30),
						ProbeHandler: corev1.ProbeHandler{HTTPGet: &corev1.HTTPGetAction{
							Path: "/healthz?full=true",
							Port: intstr.IntOrString{IntVal: int32(8080)},
						}},
						TimeoutSeconds: int32(5),
					},
					Name:  "argocd-server",
					Ports: []corev1.ContainerPort{corev1.ContainerPort{ContainerPort: int32(8080)}, corev1.ContainerPort{ContainerPort: int32(8083)}},
					ReadinessProbe: &corev1.Probe{
						InitialDelaySeconds: int32(3),
						PeriodSeconds:       int32(30),
						ProbeHandler: corev1.ProbeHandler{HTTPGet: &corev1.HTTPGetAction{
							Path: "/healthz",
							Port: intstr.IntOrString{IntVal: int32(8080)},
						}},
					},
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/app/config/ssh",
						Name:      "ssh-known-hosts",
					}, corev1.VolumeMount{
						MountPath: "/app/config/tls",
						Name:      "tls-certs",
					}, corev1.VolumeMount{
						MountPath: "/app/config/server/tls",
						Name:      "argocd-repo-server-tls",
					}, corev1.VolumeMount{
						MountPath: "/app/config/dex/tls",
						Name:      "argocd-dex-server-tls",
					}, corev1.VolumeMount{
						MountPath: "/home/argocd",
						Name:      "plugins-home",
					}, corev1.VolumeMount{
						MountPath: "/tmp",
						Name:      "tmp",
					}},
				}},
				ServiceAccountName: "argocd-server",
				Volumes: []corev1.Volume{corev1.Volume{
					Name:         "plugins-home",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "tmp",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name:         "ssh-known-hosts",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-ssh-known-hosts-cm"}}},
				}, corev1.Volume{
					Name:         "tls-certs",
					VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-tls-certs-cm"}}},
				}, corev1.Volume{
					Name: "argocd-repo-server-tls",
					VolumeSource: corev1.VolumeSource{Secret: &corev1.SecretVolumeSource{
						Items: []corev1.KeyToPath{corev1.KeyToPath{
							Key:  "tls.crt",
							Path: "tls.crt",
						}, corev1.KeyToPath{
							Key:  "tls.key",
							Path: "tls.key",
						}, corev1.KeyToPath{
							Key:  "ca.crt",
							Path: "ca.crt",
						}},
						Optional:   P(true),
						SecretName: "argocd-repo-server-tls",
					}},
				}, corev1.Volume{
					Name: "argocd-dex-server-tls",
					VolumeSource: corev1.VolumeSource{Secret: &corev1.SecretVolumeSource{
						Items: []corev1.KeyToPath{corev1.KeyToPath{
							Key:  "tls.crt",
							Path: "tls.crt",
						}, corev1.KeyToPath{
							Key:  "ca.crt",
							Path: "ca.crt",
						}},
						Optional:   P(true),
						SecretName: "argocd-dex-server-tls",
					}},
				}},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}
-- out/import/argocd/network-policy.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	corev1 "k8s.io/api/core/v1"
	networkingv1 "k8s.io/api/networking/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	intstr "k8s.io/apimachinery/pkg/util/intstr"
)

var ApplicationControllerNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-application-controller-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Ingress: []networkingv1.NetworkPolicyIngressRule{networkingv1.NetworkPolicyIngressRule{
			From:  []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{NamespaceSelector: &metav1.LabelSelector{}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{Port: &intstr.IntOrString{IntVal: int32(8082)}}},
		}},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}

var ApplicationsetControllerNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-applicationset-controller-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Ingress: []networkingv1.NetworkPolicyIngressRule{networkingv1.NetworkPolicyIngressRule{
			From: []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{NamespaceSelector: &metav1.LabelSelector{}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(7000)},
				Protocol: P(corev1.Protocol("TCP")),
			}, networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(8080)},
				Protocol: P(corev1.Protocol("TCP")),
			}},
		}},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-applicationset-controller"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}

var DexServerNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-dex-server-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Ingress: []networkingv1.NetworkPolicyIngressRule{networkingv1.NetworkPolicyIngressRule{
			From: []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-server"}}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(5556)},
				Protocol: P(corev1.Protocol("TCP")),
			}, networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(5557)},
				Protocol: P(corev1.Protocol("TCP")),
			}},
		}, networkingv1.NetworkPolicyIngressRule{
			From: []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{NamespaceSelector: &metav1.LabelSelector{}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(5558)},
				Protocol: P(corev1.Protocol("TCP")),
			}},
		}},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-dex-server"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}

var NotificationsControllerNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-notifications-controller-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Ingress: []networkingv1.NetworkPolicyIngressRule{networkingv1.NetworkPolicyIngressRule{
			From: []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{NamespaceSelector: &metav1.LabelSelector{}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(9001)},
				Protocol: P(corev1.Protocol("TCP")),
			}},
		}},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-notifications-controller"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}

var RedisNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-redis-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Egress: []networkingv1.NetworkPolicyEgressRule{networkingv1.NetworkPolicyEgressRule{Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
			Port:     &intstr.IntOrString{IntVal: int32(53)},
			Protocol: P(corev1.Protocol("UDP")),
		}, networkingv1.NetworkPolicyPort{
			Port:     &intstr.IntOrString{IntVal: int32(53)},
			Protocol: P(corev1.Protocol("TCP")),
		}}}},
		Ingress: []networkingv1.NetworkPolicyIngressRule{networkingv1.NetworkPolicyIngressRule{
			From: []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-server"}}}, networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-repo-server"}}}, networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"}}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(6379)},
				Protocol: P(corev1.Protocol("TCP")),
			}},
		}},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-redis"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress"), networkingv1.PolicyType("Egress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}

var RepoServerNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-repo-server-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Ingress: []networkingv1.NetworkPolicyIngressRule{networkingv1.NetworkPolicyIngressRule{
			From: []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-server"}}}, networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"}}}, networkingv1.NetworkPolicyPeer{PodSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-notifications-controller"}}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{
				Port:     &intstr.IntOrString{IntVal: int32(8081)},
				Protocol: P(corev1.Protocol("TCP")),
			}},
		}, networkingv1.NetworkPolicyIngressRule{
			From:  []networkingv1.NetworkPolicyPeer{networkingv1.NetworkPolicyPeer{NamespaceSelector: &metav1.LabelSelector{}}},
			Ports: []networkingv1.NetworkPolicyPort{networkingv1.NetworkPolicyPort{Port: &intstr.IntOrString{IntVal: int32(8084)}}},
		}},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-repo-server"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}

var ServerNetpol = &networkingv1.NetworkPolicy{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-server-network-policy"},
	Spec: networkingv1.NetworkPolicySpec{
		Ingress:     []networkingv1.NetworkPolicyIngressRule{},
		PodSelector: metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-server"}},
		PolicyTypes: []networkingv1.PolicyType{networkingv1.PolicyType("Ingress")},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "networking.k8s.io/v1",
		Kind:       "NetworkPolicy",
	},
}
-- out/import/argocd/role.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	rbacv1 "k8s.io/api/rbac/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var ApplicationControllerRole = &rbacv1.Role{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "application-controller",
			"app.kubernetes.io/name":      "argocd-application-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-application-controller",
	},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"secrets", "configmaps"},
		Verbs:     []string{"get", "list", "watch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"applications", "appprojects"},
		Verbs:     []string{"create", "get", "list", "watch", "update", "patch", "delete"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"events"},
		Verbs:     []string{"create", "list"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "Role",
	},
}

var ApplicationsetControllerRole = &rbacv1.Role{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "controller",
			"app.kubernetes.io/name":      "argocd-applicationset-controller",
			"app.kubernetes.io/part-of":   "argocd-applicationset",
		},
		Name: "argocd-applicationset-controller",
	},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"applications", "applicationsets", "applicationsets/finalizers"},
		Verbs:     []string{"create", "delete", "get", "list", "patch", "update", "watch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"appprojects"},
		Verbs:     []string{"get"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"applicationsets/status"},
		Verbs:     []string{"get", "patch", "update"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"events"},
		Verbs:     []string{"create", "get", "list", "patch", "watch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"secrets", "configmaps"},
		Verbs:     []string{"get", "list", "watch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{"apps", "extensions"},
		Resources: []string{"deployments"},
		Verbs:     []string{"get", "list", "watch"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "Role",
	},
}

var DexServerRole = &rbacv1.Role{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "dex-server",
			"app.kubernetes.io/name":      "argocd-dex-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-dex-server",
	},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"secrets", "configmaps"},
		Verbs:     []string{"get", "list", "watch"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "Role",
	},
}

var NotificationsControllerRole = &rbacv1.Role{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-notifications-controller"},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"applications", "appprojects"},
		Verbs:     []string{"get", "list", "watch", "update", "patch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"configmaps", "secrets"},
		Verbs:     []string{"list", "watch"},
	}, rbacv1.PolicyRule{
		APIGroups:     []string{""},
		ResourceNames: []string{"argocd-notifications-cm"},
		Resources:     []string{"configmaps"},
		Verbs:         []string{"get"},
	}, rbacv1.PolicyRule{
		APIGroups:     []string{""},
		ResourceNames: []string{"argocd-notifications-secret"},
		Resources:     []string{"secrets"},
		Verbs:         []string{"get"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "Role",
	},
}

var ServerRole = &rbacv1.Role{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	Rules: []rbacv1.PolicyRule{rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"secrets", "configmaps"},
		Verbs:     []string{"create", "get", "list", "watch", "update", "patch", "delete"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{"argoproj.io"},
		Resources: []string{"applications", "appprojects", "applicationsets"},
		Verbs:     []string{"create", "get", "list", "watch", "update", "delete", "patch"},
	}, rbacv1.PolicyRule{
		APIGroups: []string{""},
		Resources: []string{"events"},
		Verbs:     []string{"create", "list"},
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "Role",
	},
}
-- out/import/argocd/role-binding.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	rbacv1 "k8s.io/api/rbac/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var ApplicationControllerRB = &rbacv1.RoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "application-controller",
			"app.kubernetes.io/name":      "argocd-application-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-application-controller",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "Role",
		Name:     "argocd-application-controller",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind: "ServiceAccount",
		Name: "argocd-application-controller",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "RoleBinding",
	},
}

var ApplicationsetControllerRB = &rbacv1.RoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "controller",
			"app.kubernetes.io/name":      "argocd-applicationset-controller",
			"app.kubernetes.io/part-of":   "argocd-applicationset",
		},
		Name: "argocd-applicationset-controller",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "Role",
		Name:     "argocd-applicationset-controller",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind: "ServiceAccount",
		Name: "argocd-applicationset-controller",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "RoleBinding",
	},
}

var DexServerRB = &rbacv1.RoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "dex-server",
			"app.kubernetes.io/name":      "argocd-dex-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-dex-server",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "Role",
		Name:     "argocd-dex-server",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind: "ServiceAccount",
		Name: "argocd-dex-server",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "RoleBinding",
	},
}

var NotificationsControllerRB = &rbacv1.RoleBinding{
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-notifications-controller"},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "Role",
		Name:     "argocd-notifications-controller",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind: "ServiceAccount",
		Name: "argocd-notifications-controller",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "RoleBinding",
	},
}

var RedisRB = &rbacv1.RoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "redis",
			"app.kubernetes.io/name":      "argocd-redis",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-redis",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "Role",
		Name:     "argocd-redis",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind: "ServiceAccount",
		Name: "argocd-redis",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "RoleBinding",
	},
}

var ServerRB = &rbacv1.RoleBinding{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	RoleRef: rbacv1.RoleRef{
		APIGroup: "rbac.authorization.k8s.io",
		Kind:     "Role",
		Name:     "argocd-server",
	},
	Subjects: []rbacv1.Subject{rbacv1.Subject{
		Kind: "ServiceAccount",
		Name: "argocd-server",
	}},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "rbac.authorization.k8s.io/v1",
		Kind:       "RoleBinding",
	},
}
-- out/import/argocd/secret.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var NotificationsSecrets = &corev1.Secret{
	Data:       nil,
	ObjectMeta: metav1.ObjectMeta{Name: "argocd-notifications-secret"},
	Type:       corev1.SecretType("Opaque"),
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Secret",
	},
} // TODO: SECRETS SHOULD BE STORED ELSEWHERE THAN IN THE CODE!!!!

var Secrets = &corev1.Secret{
	Data: nil,
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/name":    "argocd-secret",
			"app.kubernetes.io/part-of": "argocd",
		},
		Name: "argocd-secret",
	},
	Type: corev1.SecretType("Opaque"),
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Secret",
	},
} // TODO: SECRETS SHOULD BE STORED ELSEWHERE THAN IN THE CODE!!!!
-- out/import/argocd/service.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	intstr "k8s.io/apimachinery/pkg/util/intstr"
)

var ApplicationsetControllerSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "controller",
			"app.kubernetes.io/name":      "argocd-applicationset-controller",
			"app.kubernetes.io/part-of":   "argocd-applicationset",
		},
		Name: "argocd-applicationset-controller",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:     "webhook",
			Port:     int32(7000),
			Protocol: corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{
				StrVal: "webhook",
				Type:   intstr.Type(int64(1)),
			},
		}, corev1.ServicePort{
			Name:     "metrics",
			Port:     int32(8080),
			Protocol: corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{
				StrVal: "metrics",
				Type:   intstr.Type(int64(1)),
			},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-applicationset-controller"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var DexServerSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "dex-server",
			"app.kubernetes.io/name":      "argocd-dex-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-dex-server",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "http",
			Port:       int32(5556),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(5556)},
		}, corev1.ServicePort{
			Name:       "grpc",
			Port:       int32(5557),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(5557)},
		}, corev1.ServicePort{
			Name:       "metrics",
			Port:       int32(5558),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(5558)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-dex-server"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var MetricsSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "metrics",
			"app.kubernetes.io/name":      "argocd-metrics",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-metrics",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "metrics",
			Port:       int32(8082),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(8082)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var NotificationsControllerMetricsSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{"app.kubernetes.io/name": "argocd-notifications-controller-metrics"},
		Name:   "argocd-notifications-controller-metrics",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "metrics",
			Port:       int32(9001),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(9001)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-notifications-controller"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var RedisSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "redis",
			"app.kubernetes.io/name":      "argocd-redis",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-redis",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "tcp-redis",
			Port:       int32(6379),
			TargetPort: intstr.IntOrString{IntVal: int32(6379)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-redis"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var RepoServerSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "repo-server",
			"app.kubernetes.io/name":      "argocd-repo-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-repo-server",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "server",
			Port:       int32(8081),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(8081)},
		}, corev1.ServicePort{
			Name:       "metrics",
			Port:       int32(8084),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(8084)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-repo-server"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var ServerMetricsSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server-metrics",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server-metrics",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "metrics",
			Port:       int32(8083),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(8083)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-server"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}

var ServerSVC = &corev1.Service{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	Spec: corev1.ServiceSpec{
		Ports: []corev1.ServicePort{corev1.ServicePort{
			Name:       "http",
			Port:       int32(80),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(8080)},
		}, corev1.ServicePort{
			Name:       "https",
			Port:       int32(443),
			Protocol:   corev1.Protocol("TCP"),
			TargetPort: intstr.IntOrString{IntVal: int32(8080)},
		}},
		Selector: map[string]string{"app.kubernetes.io/name": "argocd-server"},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "Service",
	},
}
-- out/import/argocd/service-account.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var ApplicationControllerSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "application-controller",
			"app.kubernetes.io/name":      "argocd-application-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-application-controller",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}

var ApplicationsetControllerSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "controller",
			"app.kubernetes.io/name":      "argocd-applicationset-controller",
			"app.kubernetes.io/part-of":   "argocd-applicationset",
		},
		Name: "argocd-applicationset-controller",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}

var DexServerSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "dex-server",
			"app.kubernetes.io/name":      "argocd-dex-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-dex-server",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}

var NotificationsControllerSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "notifications-controller",
			"app.kubernetes.io/name":      "argocd-notifications-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-notifications-controller",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}

var RedisSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "redis",
			"app.kubernetes.io/name":      "argocd-redis",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-redis",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}

var RepoServerSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "repo-server",
			"app.kubernetes.io/name":      "argocd-repo-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-repo-server",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}

var ServerSA = &corev1.ServiceAccount{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "server",
			"app.kubernetes.io/name":      "argocd-server",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-server",
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "v1",
		Kind:       "ServiceAccount",
	},
}
-- out/import/argocd/stateful-set.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	intstr "k8s.io/apimachinery/pkg/util/intstr"
)

var ApplicationControllerSTS = &appsv1.StatefulSet{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "application-controller",
			"app.kubernetes.io/name":      "argocd-application-controller",
			"app.kubernetes.io/part-of":   "argocd",
		},
		Name: "argocd-application-controller",
	},
	Spec: appsv1.StatefulSetSpec{
		Replicas:    P(int32(1)),
		Selector:    &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"}},
		ServiceName: "argocd-application-controller",
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"}},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{PodAntiAffinity: &corev1.PodAntiAffinity{PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/name": "argocd-application-controller"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(100),
				}, corev1.WeightedPodAffinityTerm{
					PodAffinityTerm: corev1.PodAffinityTerm{
						LabelSelector: &metav1.LabelSelector{MatchLabels: map[string]string{"app.kubernetes.io/part-of": "argocd"}},
						TopologyKey:   "kubernetes.io/hostname",
					},
					Weight: int32(5),
				}}}},
				Containers: []corev1.Container{corev1.Container{
					Command: []string{"argocd-application-controller"},
					Env: []corev1.EnvVar{corev1.EnvVar{
						Name:  "ARGOCD_CONTROLLER_REPLICAS",
						Value: "1",
					}, corev1.EnvVar{
						Name: "ARGOCD_RECONCILIATION_TIMEOUT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "timeout.reconciliation",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_HARD_RECONCILIATION_TIMEOUT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "timeout.hard.reconciliation",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "repo.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.repo.server.timeout.seconds",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.status.processors",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.operation.processors",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.log.format",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.log.level",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.metrics.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.self.heal.timeout.seconds",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.repo.server.plaintext",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.repo.server.strict.tls",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.resource.health.persist",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APP_STATE_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.app.state.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDIS_SERVER",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.server",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDIS_COMPRESSION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.compression",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "REDISDB",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "redis.db",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_DEFAULT_CACHE_EXPIRATION",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "controller.default.cache.expiration",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "otlp.address",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}, corev1.EnvVar{
						Name: "ARGOCD_APPLICATION_NAMESPACES",
						ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
							Key:                  "application.namespaces",
							LocalObjectReference: corev1.LocalObjectReference{Name: "argocd-cmd-params-cm"},
							Optional:             P(true),
						}},
					}},
					Image:           "quay.io/argoproj/argocd:v2.6.0",
					ImagePullPolicy: corev1.PullPolicy("Always"),
					Name:            "argocd-application-controller",
					Ports:           []corev1.ContainerPort{corev1.ContainerPort{ContainerPort: int32(8082)}},
					ReadinessProbe: &corev1.Probe{
						InitialDelaySeconds: int32(5),
						PeriodSeconds:       int32(10),
						ProbeHandler: corev1.ProbeHandler{HTTPGet: &corev1.HTTPGetAction{
							Path: "/healthz",
							Port: intstr.IntOrString{IntVal: int32(8082)},
						}},
					},
					SecurityContext: &corev1.SecurityContext{
						AllowPrivilegeEscalation: P(false),
						Capabilities:             &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
						ReadOnlyRootFilesystem:   P(true),
						RunAsNonRoot:             P(true),
						SeccompProfile:           &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
					},
					VolumeMounts: []corev1.VolumeMount{corev1.VolumeMount{
						MountPath: "/app/config/controller/tls",
						Name:      "argocd-repo-server-tls",
					}, corev1.VolumeMount{
						MountPath: "/home/argocd",
						Name:      "argocd-home",
					}},
					WorkingDir: "/home/argocd",
				}},
				ServiceAccountName: "argocd-application-controller",
				Volumes: []corev1.Volume{corev1.Volume{
					Name:         "argocd-home",
					VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}},
				}, corev1.Volume{
					Name: "argocd-repo-server-tls",
					VolumeSource: corev1.VolumeSource{Secret: &corev1.SecretVolumeSource{
						Items: []corev1.KeyToPath{corev1.KeyToPath{
							Key:  "tls.crt",
							Path: "tls.crt",
						}, corev1.KeyToPath{
							Key:  "tls.key",
							Path: "tls.key",
						}, corev1.KeyToPath{
							Key:  "ca.crt",
							Path: "ca.crt",
						}},
						Optional:   P(true),
						SecretName: "argocd-repo-server-tls",
					}},
				}},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "StatefulSet",
	},
}
-- out/import/argocd/app.go --
// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package lingon

import (
	"context"
	"errors"
	kube "github.com/golingon/lingon/pkg/kube"
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	networkingv1 "k8s.io/api/networking/v1"
	rbacv1 "k8s.io/api/rbac/v1"
	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
	"os"
	"os/exec"
)

// validate the struct implements the interface
var _ kube.Exporter = (*Argocd)(nil)

// Argocd contains kubernetes manifests
type Argocd struct {
	kube.App

	ApplicationControllerCR           *rbacv1.ClusterRole
	ApplicationControllerCRB          *rbacv1.ClusterRoleBinding
	ApplicationControllerNetpol       *networkingv1.NetworkPolicy
	ApplicationControllerRB           *rbacv1.RoleBinding
	ApplicationControllerRole         *rbacv1.Role
	ApplicationControllerSA           *corev1.ServiceAccount
	ApplicationControllerSTS          *appsv1.StatefulSet
	ApplicationsArgoprojIoCRD         *apiextensionsv1.CustomResourceDefinition
	ApplicationsetControllerDeploy    *appsv1.Deployment
	ApplicationsetControllerNetpol    *networkingv1.NetworkPolicy
	ApplicationsetControllerRB        *rbacv1.RoleBinding
	ApplicationsetControllerRole      *rbacv1.Role
	ApplicationsetControllerSA        *corev1.ServiceAccount
	ApplicationsetControllerSVC       *corev1.Service
	ApplicationsetsArgoprojIoCRD      *apiextensionsv1.CustomResourceDefinition
	AppprojectsArgoprojIoCRD          *apiextensionsv1.CustomResourceDefinition
	CM                                *corev1.ConfigMap
	CmdParamsCM                       *corev1.ConfigMap
	DexServerDeploy                   *appsv1.Deployment
	DexServerNetpol                   *networkingv1.NetworkPolicy
	DexServerRB                       *rbacv1.RoleBinding
	DexServerRole                     *rbacv1.Role
	DexServerSA                       *corev1.ServiceAccount
	DexServerSVC                      *corev1.Service
	GpgKeysCM                         *corev1.ConfigMap
	MetricsSVC                        *corev1.Service
	NotificationsCM                   *corev1.ConfigMap
	NotificationsControllerDeploy     *appsv1.Deployment
	NotificationsControllerMetricsSVC *corev1.Service
	NotificationsControllerNetpol     *networkingv1.NetworkPolicy
	NotificationsControllerRB         *rbacv1.RoleBinding
	NotificationsControllerRole       *rbacv1.Role
	NotificationsControllerSA         *corev1.ServiceAccount
	NotificationsSecrets              *corev1.Secret
	RbacCM                            *corev1.ConfigMap
	RedisDeploy                       *appsv1.Deployment
	RedisNetpol                       *networkingv1.NetworkPolicy
	RedisRB                           *rbacv1.RoleBinding
	RedisSA                           *corev1.ServiceAccount
	RedisSVC                          *corev1.Service
	RepoServerDeploy                  *appsv1.Deployment
	RepoServerNetpol                  *networkingv1.NetworkPolicy
	RepoServerSA                      *corev1.ServiceAccount
	RepoServerSVC                     *corev1.Service
	Secrets                           *corev1.Secret
	ServerCR                          *rbacv1.ClusterRole
	ServerCRB                         *rbacv1.ClusterRoleBinding
	ServerDeploy                      *appsv1.Deployment
	ServerMetricsSVC                  *corev1.Service
	ServerNetpol                      *networkingv1.NetworkPolicy
	ServerRB                          *rbacv1.RoleBinding
	ServerRole                        *rbacv1.Role
	ServerSA                          *corev1.ServiceAccount
	ServerSVC                         *corev1.Service
	SshKnownHostsCM                   *corev1.ConfigMap
	TlsCertsCM                        *corev1.ConfigMap
}

// New creates a new Argocd
func New() *Argocd {
	return &Argocd{
		ApplicationControllerCR:           ApplicationControllerCR,
		ApplicationControllerCRB:          ApplicationControllerCRB,
		ApplicationControllerNetpol:       ApplicationControllerNetpol,
		ApplicationControllerRB:           ApplicationControllerRB,
		ApplicationControllerRole:         ApplicationControllerRole,
		ApplicationControllerSA:           ApplicationControllerSA,
		ApplicationControllerSTS:          ApplicationControllerSTS,
		ApplicationsArgoprojIoCRD:         ApplicationsArgoprojIoCRD,
		ApplicationsetControllerDeploy:    ApplicationsetControllerDeploy,
		ApplicationsetControllerNetpol:    ApplicationsetControllerNetpol,
		ApplicationsetControllerRB:        ApplicationsetControllerRB,
		ApplicationsetControllerRole:      ApplicationsetControllerRole,
		ApplicationsetControllerSA:        ApplicationsetControllerSA,
		ApplicationsetControllerSVC:       ApplicationsetControllerSVC,
		ApplicationsetsArgoprojIoCRD:      ApplicationsetsArgoprojIoCRD,
		AppprojectsArgoprojIoCRD:          AppprojectsArgoprojIoCRD,
		CM:                                CM,
		CmdParamsCM:                       CmdParamsCM,
		DexServerDeploy:                   DexServerDeploy,
		DexServerNetpol:                   DexServerNetpol,
		DexServerRB:                       DexServerRB,
		DexServerRole:                     DexServerRole,
		DexServerSA:                       DexServerSA,
		DexServerSVC:                      DexServerSVC,
		GpgKeysCM:                         GpgKeysCM,
		MetricsSVC:                        MetricsSVC,
		NotificationsCM:                   NotificationsCM,
		NotificationsControllerDeploy:     NotificationsControllerDeploy,
		NotificationsControllerMetricsSVC: NotificationsControllerMetricsSVC,
		NotificationsControllerNetpol:     NotificationsControllerNetpol,
		NotificationsControllerRB:         NotificationsControllerRB,
		NotificationsControllerRole:       NotificationsControllerRole,
		NotificationsControllerSA:         NotificationsControllerSA,
		NotificationsSecrets:              NotificationsSecrets,
		RbacCM:                            RbacCM,
		RedisDeploy:                       RedisDeploy,
		RedisNetpol:                       RedisNetpol,
		RedisRB:                           RedisRB,
		RedisSA:                           RedisSA,
		RedisSVC:                          RedisSVC,
		RepoServerDeploy:                  RepoServerDeploy,
		RepoServerNetpol:                  RepoServerNetpol,
		RepoServerSA:                      RepoServerSA,
		RepoServerSVC:                     RepoServerSVC,
		Secrets:                           Secrets,
		ServerCR:                          ServerCR,
		ServerCRB:                         ServerCRB,
		ServerDeploy:                      ServerDeploy,
		ServerMetricsSVC:                  ServerMetricsSVC,
		ServerNetpol:                      ServerNetpol,
		ServerRB:                          ServerRB,
		ServerRole:                        ServerRole,
		ServerSA:                          ServerSA,
		ServerSVC:                         ServerSVC,
		SshKnownHostsCM:                   SshKnownHostsCM,
		TlsCertsCM:                        TlsCertsCM}
}

// Apply applies the kubernetes objects to the cluster
func (a *Argocd) Apply(ctx context.Context) error {
	return Apply(ctx, a)
}

// Export exports the kubernetes objects to YAML files in the given directory
func (a *Argocd) Export(dir string) error {
	return kube.Export(a, kube.WithExportOutputDirectory(dir))
}

// Apply applies the kubernetes objects contained in Exporter to the cluster
func Apply(ctx context.Context, km kube.Exporter) error {
	cmd := exec.CommandContext(ctx, "kubectl", "apply", "-f", "-")
	cmd.Env = os.Environ()        // inherit environment in case we need to use kubectl from a container
	stdin, err := cmd.StdinPipe() // pipe to pass data to kubectl
	if err != nil {
		return err
	}

	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr

	go func() {
		defer func() {
			err = errors.Join(err, stdin.Close())
		}()
		if errEW := kube.Export(km, kube.WithExportWriter(stdin), kube.WithExportAsSingleFile("stdin")); errEW != nil {
			err = errors.Join(err, errEW)
		}
	}()

	if errS := cmd.Start(); errS != nil {
		return errors.Join(err, errS)
	}

	// waits for the command to exit and waits for any copying
	// to stdin or copying from stdout or stderr to complete
	return errors.Join(err, cmd.Wait())
}

// P converts T to *T, useful for basic types
func P[T any](t T) *T {
	return &t
}
