Jelajahi Sumber

chore(linter): fix linter issue in `api` and `cmd` package (#5413)

* chore(linter): fix linter issue in api and cmd package

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* configure sonarqube to ignore godoc comments as duplicates

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update sonarqube config

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update sonarqube config

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update sonarqube config

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update sonarqube config

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update sonarqube config

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update sonarqube config

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

* update the api docs

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>

---------

Signed-off-by: Olumide Ogundele <olumideralph@gmail.com>
Co-authored-by: Gergely Brautigam <skarlso777@gmail.com>
Ogundele Olumide 8 bulan lalu
induk
melakukan
6f411f5569
100 mengubah file dengan 712 tambahan dan 224 penghapusan
  1. 12 1
      .sonarcloud.properties
  2. 1 0
      apis/doc.go
  3. 2 0
      apis/externalsecrets/doc.go
  4. 4 1
      apis/externalsecrets/v1/clusterexternalsecret_types.go
  5. 84 25
      apis/externalsecrets/v1/externalsecret_types.go
  6. 7 0
      apis/externalsecrets/v1/externalsecret_validator.go
  7. 1 0
      apis/externalsecrets/v1/externalsecret_webhook.go
  8. 9 0
      apis/externalsecrets/v1/fakes/pushremoteref.go
  9. 16 0
      apis/externalsecrets/v1/generic_store.go
  10. 8 4
      apis/externalsecrets/v1/provider.go
  11. 7 0
      apis/externalsecrets/v1/provider_schema_maintenance.go
  12. 3 1
      apis/externalsecrets/v1/register.go
  13. 3 1
      apis/externalsecrets/v1/secretsstore_delinea_types.go
  14. 14 2
      apis/externalsecrets/v1/secretsstore_infisical_types.go
  15. 3 1
      apis/externalsecrets/v1/secretsstore_passbolt_types.go
  16. 4 1
      apis/externalsecrets/v1/secretsstore_secretserver_types.go
  17. 5 2
      apis/externalsecrets/v1/secretstore_akeyless_types.go
  18. 1 1
      apis/externalsecrets/v1/secretstore_alibaba_types.go
  19. 4 2
      apis/externalsecrets/v1/secretstore_aws_types.go
  20. 8 7
      apis/externalsecrets/v1/secretstore_azurekv_types.go
  21. 5 2
      apis/externalsecrets/v1/secretstore_beyondtrust_types.go
  22. 5 0
      apis/externalsecrets/v1/secretstore_conjur_types.go
  23. 2 0
      apis/externalsecrets/v1/secretstore_device42_types.go
  24. 2 0
      apis/externalsecrets/v1/secretstore_doppler_types.go
  25. 1 0
      apis/externalsecrets/v1/secretstore_fake_types.go
  26. 3 0
      apis/externalsecrets/v1/secretstore_fortanix_types.go
  27. 4 0
      apis/externalsecrets/v1/secretstore_gcpsm_types.go
  28. 2 1
      apis/externalsecrets/v1/secretstore_github_types.go
  29. 3 1
      apis/externalsecrets/v1/secretstore_gitlab_types.go
  30. 4 2
      apis/externalsecrets/v1/secretstore_ibm_types.go
  31. 5 2
      apis/externalsecrets/v1/secretstore_kubernetes_types.go
  32. 3 0
      apis/externalsecrets/v1/secretstore_ngrok_types.go
  33. 4 2
      apis/externalsecrets/v1/secretstore_oracle_types.go
  34. 3 1
      apis/externalsecrets/v1/secretstore_passworddeport_types.go
  35. 2 0
      apis/externalsecrets/v1/secretstore_pulumi_types.go
  36. 2 2
      apis/externalsecrets/v1/secretstore_scaleway_types.go
  37. 17 5
      apis/externalsecrets/v1/secretstore_types.go
  38. 2 0
      apis/externalsecrets/v1/secretstore_validator.go
  39. 5 3
      apis/externalsecrets/v1/secretstore_vault_types.go
  40. 2 0
      apis/externalsecrets/v1/secretstore_webhook.go
  41. 10 3
      apis/externalsecrets/v1/secretstore_webhook_types.go
  42. 3 0
      apis/externalsecrets/v1/secretstore_yandex_types.go
  43. 12 12
      apis/externalsecrets/v1/zz_generated.deepcopy.go
  44. 35 6
      apis/externalsecrets/v1alpha1/pushsecret_types.go
  45. 16 7
      apis/externalsecrets/v1alpha1/register.go
  46. 4 1
      apis/externalsecrets/v1beta1/clusterexternalsecret_types.go
  47. 74 25
      apis/externalsecrets/v1beta1/externalsecret_types.go
  48. 4 0
      apis/externalsecrets/v1beta1/externalsecret_validator.go
  49. 1 0
      apis/externalsecrets/v1beta1/externalsecret_webhook.go
  50. 9 0
      apis/externalsecrets/v1beta1/fakes/pushremoteref.go
  51. 16 0
      apis/externalsecrets/v1beta1/generic_store.go
  52. 6 5
      apis/externalsecrets/v1beta1/provider.go
  53. 3 1
      apis/externalsecrets/v1beta1/register.go
  54. 2 0
      apis/externalsecrets/v1beta1/secretsstore_delinea_types.go
  55. 3 0
      apis/externalsecrets/v1beta1/secretsstore_infisical_types.go
  56. 5 2
      apis/externalsecrets/v1beta1/secretsstore_passbolt_types.go
  57. 2 0
      apis/externalsecrets/v1beta1/secretsstore_secretserver_types.go
  58. 3 2
      apis/externalsecrets/v1beta1/secretstore_akeyless_types.go
  59. 1 1
      apis/externalsecrets/v1beta1/secretstore_alibaba_types.go
  60. 3 2
      apis/externalsecrets/v1beta1/secretstore_aws_types.go
  61. 13 9
      apis/externalsecrets/v1beta1/secretstore_azurekv_types.go
  62. 4 2
      apis/externalsecrets/v1beta1/secretstore_beyondtrust_types.go
  63. 4 0
      apis/externalsecrets/v1beta1/secretstore_conjur_types.go
  64. 2 0
      apis/externalsecrets/v1beta1/secretstore_device42_types.go
  65. 2 2
      apis/externalsecrets/v1beta1/secretstore_doppler_types.go
  66. 1 0
      apis/externalsecrets/v1beta1/secretstore_fake_types.go
  67. 3 0
      apis/externalsecrets/v1beta1/secretstore_fortanix_types.go
  68. 3 0
      apis/externalsecrets/v1beta1/secretstore_gcpsm_types.go
  69. 2 1
      apis/externalsecrets/v1beta1/secretstore_github_types.go
  70. 3 1
      apis/externalsecrets/v1beta1/secretstore_gitlab_types.go
  71. 4 3
      apis/externalsecrets/v1beta1/secretstore_ibm_types.go
  72. 5 1
      apis/externalsecrets/v1beta1/secretstore_kubernetes_types.go
  73. 4 2
      apis/externalsecrets/v1beta1/secretstore_oracle_types.go
  74. 3 1
      apis/externalsecrets/v1beta1/secretstore_passworddeport_types.go
  75. 2 0
      apis/externalsecrets/v1beta1/secretstore_pulumi_types.go
  76. 2 0
      apis/externalsecrets/v1beta1/secretstore_scaleway_types.go
  77. 23 7
      apis/externalsecrets/v1beta1/secretstore_types.go
  78. 1 0
      apis/externalsecrets/v1beta1/secretstore_validator.go
  79. 6 5
      apis/externalsecrets/v1beta1/secretstore_vault_types.go
  80. 2 0
      apis/externalsecrets/v1beta1/secretstore_webhook.go
  81. 8 3
      apis/externalsecrets/v1beta1/secretstore_webhook_types.go
  82. 3 1
      apis/externalsecrets/v1beta1/secretstore_yandexcertificatemanager_types.go
  83. 3 1
      apis/externalsecrets/v1beta1/secretstore_yandexlockbox_types.go
  84. 1 0
      apis/generators/v1alpha1/generator_interfaces.go
  85. 11 2
      apis/generators/v1alpha1/generator_state_types.go
  86. 1 0
      apis/generators/v1alpha1/generator_types.go
  87. 33 15
      apis/generators/v1alpha1/register.go
  88. 7 3
      apis/generators/v1alpha1/types_acr.go
  89. 1 0
      apis/generators/v1alpha1/types_cloudsmith.go
  90. 31 14
      apis/generators/v1alpha1/types_cluster.go
  91. 3 3
      apis/generators/v1alpha1/types_ecr.go
  92. 4 0
      apis/generators/v1alpha1/types_gcr.go
  93. 5 2
      apis/generators/v1alpha1/types_github.go
  94. 5 1
      apis/generators/v1alpha1/types_grafana.go
  95. 1 0
      apis/generators/v1alpha1/types_quay.go
  96. 1 0
      apis/generators/v1alpha1/types_sts.go
  97. 9 2
      apis/generators/v1alpha1/types_vault.go
  98. 9 3
      apis/generators/v1alpha1/types_webhook.go
  99. 1 1
      apis/meta/v1/doc.go
  100. 2 2
      apis/meta/v1/types.go

+ 12 - 1
.sonarcloud.properties

@@ -10,8 +10,19 @@ sonar.tests=.
 sonar.test.inclusions=**/*_test.go, e2e/**
 sonar.test.inclusions=**/*_test.go, e2e/**
 
 
 # Issues to ignore
 # Issues to ignore
-sonar.issue.ignore.multicriteria=g1
+sonar.issue.ignore.multicriteria=g1,g2,g3
 
 
 # Ignore "Define a constant instead of duplicating this literal" in tests
 # Ignore "Define a constant instead of duplicating this literal" in tests
 sonar.issue.ignore.multicriteria.g1.ruleKey=go:S1192
 sonar.issue.ignore.multicriteria.g1.ruleKey=go:S1192
 sonar.issue.ignore.multicriteria.g1.resourceKey=**/*_test.go, e2e/**
 sonar.issue.ignore.multicriteria.g1.resourceKey=**/*_test.go, e2e/**
+
+# Ignore duplicated blocks in v1beta1 package - these are API versions and duplication is expected
+sonar.issue.ignore.multicriteria.g2.ruleKey=go:S1066
+sonar.issue.ignore.multicriteria.g2.resourceKey=apis/externalsecrets/v1beta1/**
+
+# Ignore duplicated blocks in v1 package - these are API versions and duplication is expected
+sonar.issue.ignore.multicriteria.g3.ruleKey=go:S1066
+sonar.issue.ignore.multicriteria.g3.resourceKey=apis/externalsecrets/v1/**
+
+# Exclude API directories from duplication detection altogether because duplication is expected between versions.
+sonar.cpd.exclusions=apis/externalsecrets/v1/**,apis/externalsecrets/v1beta1/**

+ 1 - 0
apis/doc.go

@@ -17,4 +17,5 @@ limitations under the License.
 //
 //
 // +domain=external-secrets.io
 // +domain=external-secrets.io
 
 
+// Package apis contains Kubernetes API groups for external-secrets resources.
 package apis
 package apis

+ 2 - 0
apis/externalsecrets/doc.go

@@ -16,4 +16,6 @@ limitations under the License.
 
 
 // +groupName=external-secrets.io
 // +groupName=external-secrets.io
 
 
+// Package externalsecrets contains API Schema definitions for the externalsecrets API groups.
+// Currently, we have v1, v1alpha1 and v1beta1 versions.
 package externalsecrets
 package externalsecrets

+ 4 - 1
apis/externalsecrets/v1/clusterexternalsecret_types.go

@@ -68,10 +68,13 @@ type ExternalSecretMetadata struct {
 	Labels map[string]string `json:"labels,omitempty"`
 	Labels map[string]string `json:"labels,omitempty"`
 }
 }
 
 
+// ClusterExternalSecretConditionType defines a value type for ClusterExternalSecret conditions.
 type ClusterExternalSecretConditionType string
 type ClusterExternalSecretConditionType string
 
 
+// ClusterExternalSecretReady is a ClusterExternalSecretConditionType set when the ClusterExternalSecret is ready.
 const ClusterExternalSecretReady ClusterExternalSecretConditionType = "Ready"
 const ClusterExternalSecretReady ClusterExternalSecretConditionType = "Ready"
 
 
+// ClusterExternalSecretStatusCondition defines the observed state of a ClusterExternalSecret resource.
 type ClusterExternalSecretStatusCondition struct {
 type ClusterExternalSecretStatusCondition struct {
 	Type   ClusterExternalSecretConditionType `json:"type"`
 	Type   ClusterExternalSecretConditionType `json:"type"`
 	Status corev1.ConditionStatus             `json:"status"`
 	Status corev1.ConditionStatus             `json:"status"`
@@ -108,6 +111,7 @@ type ClusterExternalSecretStatus struct {
 	Conditions []ClusterExternalSecretStatusCondition `json:"conditions,omitempty"`
 	Conditions []ClusterExternalSecretStatusCondition `json:"conditions,omitempty"`
 }
 }
 
 
+// ClusterExternalSecret is the Schema for the clusterexternalsecrets API.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
 // +kubebuilder:resource:scope=Cluster,categories={external-secrets},shortName=ces
 // +kubebuilder:resource:scope=Cluster,categories={external-secrets},shortName=ces
@@ -116,7 +120,6 @@ type ClusterExternalSecretStatus struct {
 // +kubebuilder:printcolumn:name="Store",type=string,JSONPath=`.spec.externalSecretSpec.secretStoreRef.name`
 // +kubebuilder:printcolumn:name="Store",type=string,JSONPath=`.spec.externalSecretSpec.secretStoreRef.name`
 // +kubebuilder:printcolumn:name="Refresh Interval",type=string,JSONPath=`.spec.refreshTime`
 // +kubebuilder:printcolumn:name="Refresh Interval",type=string,JSONPath=`.spec.refreshTime`
 // +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`
 // +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`
-// ClusterExternalSecret is the Schema for the clusterexternalsecrets API.
 type ClusterExternalSecret struct {
 type ClusterExternalSecret struct {
 	metav1.TypeMeta   `json:",inline"`
 	metav1.TypeMeta   `json:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`

+ 84 - 25
apis/externalsecrets/v1/externalsecret_types.go

@@ -41,17 +41,17 @@ type SecretStoreRef struct {
 type ExternalSecretCreationPolicy string
 type ExternalSecretCreationPolicy string
 
 
 const (
 const (
-	// Owner creates the Secret and sets .metadata.ownerReferences to the ExternalSecret resource.
+	// CreatePolicyOwner creates the Secret and sets .metadata.ownerReferences to the ExternalSecret resource.
 	CreatePolicyOwner ExternalSecretCreationPolicy = "Owner"
 	CreatePolicyOwner ExternalSecretCreationPolicy = "Owner"
 
 
-	// Orphan creates the Secret and does not set the ownerReference.
+	// CreatePolicyOrphan creates the Secret and does not set the ownerReference.
 	// I.e. it will be orphaned after the deletion of the ExternalSecret.
 	// I.e. it will be orphaned after the deletion of the ExternalSecret.
 	CreatePolicyOrphan ExternalSecretCreationPolicy = "Orphan"
 	CreatePolicyOrphan ExternalSecretCreationPolicy = "Orphan"
 
 
-	// Merge does not create the Secret, but merges the data fields to the Secret.
+	// CreatePolicyMerge does not create the Secret, but merges the data fields to the Secret.
 	CreatePolicyMerge ExternalSecretCreationPolicy = "Merge"
 	CreatePolicyMerge ExternalSecretCreationPolicy = "Merge"
 
 
-	// None does not create a Secret (future use with injector).
+	// CreatePolicyNone does not create a Secret (future use with injector).
 	CreatePolicyNone ExternalSecretCreationPolicy = "None"
 	CreatePolicyNone ExternalSecretCreationPolicy = "None"
 )
 )
 
 
@@ -60,19 +60,19 @@ const (
 type ExternalSecretDeletionPolicy string
 type ExternalSecretDeletionPolicy string
 
 
 const (
 const (
-	// Delete deletes the secret if all provider secrets are deleted.
+	// DeletionPolicyDelete deletes the secret if all provider secrets are deleted.
 	// If a secret gets deleted on the provider side and is not accessible
 	// If a secret gets deleted on the provider side and is not accessible
 	// anymore this is not considered an error and the ExternalSecret
 	// anymore this is not considered an error and the ExternalSecret
 	// does not go into SecretSyncedError status.
 	// does not go into SecretSyncedError status.
 	DeletionPolicyDelete ExternalSecretDeletionPolicy = "Delete"
 	DeletionPolicyDelete ExternalSecretDeletionPolicy = "Delete"
 
 
-	// Merge removes keys in the secret, but not the secret itself.
+	// DeletionPolicyMerge removes keys in the secret, but not the secret itself.
 	// If a secret gets deleted on the provider side and is not accessible
 	// If a secret gets deleted on the provider side and is not accessible
 	// anymore this is not considered an error and the ExternalSecret
 	// anymore this is not considered an error and the ExternalSecret
 	// does not go into SecretSyncedError status.
 	// does not go into SecretSyncedError status.
 	DeletionPolicyMerge ExternalSecretDeletionPolicy = "Merge"
 	DeletionPolicyMerge ExternalSecretDeletionPolicy = "Merge"
 
 
-	// Retain will retain the secret if all provider secrets have been deleted.
+	// DeletionPolicyRetain will retain the secret if all provider secrets have been deleted.
 	// If a provider secret does not exist the ExternalSecret gets into the
 	// If a provider secret does not exist the ExternalSecret gets into the
 	// SecretSyncedError status.
 	// SecretSyncedError status.
 	DeletionPolicyRetain ExternalSecretDeletionPolicy = "Retain"
 	DeletionPolicyRetain ExternalSecretDeletionPolicy = "Retain"
@@ -115,21 +115,28 @@ type ExternalSecretTemplate struct {
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 }
 }
 
 
+// TemplateMergePolicy defines how the rendered template should be merged with the existing Secret data.
 // +kubebuilder:validation:Enum=Replace;Merge
 // +kubebuilder:validation:Enum=Replace;Merge
 type TemplateMergePolicy string
 type TemplateMergePolicy string
 
 
+// These constants are used to define the merge policy for templates.
 const (
 const (
 	MergePolicyReplace TemplateMergePolicy = "Replace"
 	MergePolicyReplace TemplateMergePolicy = "Replace"
 	MergePolicyMerge   TemplateMergePolicy = "Merge"
 	MergePolicyMerge   TemplateMergePolicy = "Merge"
 )
 )
 
 
+// TemplateEngineVersion specifies the template engine version that should be used to
+// compile/execute the template.
 // +kubebuilder:validation:Enum=v2
 // +kubebuilder:validation:Enum=v2
 type TemplateEngineVersion string
 type TemplateEngineVersion string
 
 
 const (
 const (
+	// TemplateEngineV2 is the currently supported template engine version.
 	TemplateEngineV2 TemplateEngineVersion = "v2"
 	TemplateEngineV2 TemplateEngineVersion = "v2"
 )
 )
 
 
+// TemplateFrom specifies a source for templates.
+// Each item in the list can either reference a ConfigMap or a Secret resource.
 type TemplateFrom struct {
 type TemplateFrom struct {
 	ConfigMap *TemplateRef `json:"configMap,omitempty"`
 	ConfigMap *TemplateRef `json:"configMap,omitempty"`
 	Secret    *TemplateRef `json:"secret,omitempty"`
 	Secret    *TemplateRef `json:"secret,omitempty"`
@@ -142,23 +149,28 @@ type TemplateFrom struct {
 	Literal *string `json:"literal,omitempty"`
 	Literal *string `json:"literal,omitempty"`
 }
 }
 
 
+// TemplateScope specifies how the template keys should be interpreted.
 // +kubebuilder:validation:Enum=Values;KeysAndValues
 // +kubebuilder:validation:Enum=Values;KeysAndValues
 type TemplateScope string
 type TemplateScope string
 
 
+// These are used to define the scope of templates.
 const (
 const (
 	TemplateScopeValues        TemplateScope = "Values"
 	TemplateScopeValues        TemplateScope = "Values"
 	TemplateScopeKeysAndValues TemplateScope = "KeysAndValues"
 	TemplateScopeKeysAndValues TemplateScope = "KeysAndValues"
 )
 )
 
 
+// TemplateTarget specifies where the rendered templates should be applied.
 // +kubebuilder:validation:Enum=Data;Annotations;Labels
 // +kubebuilder:validation:Enum=Data;Annotations;Labels
 type TemplateTarget string
 type TemplateTarget string
 
 
+// These are used to define the target of templates.
 const (
 const (
 	TemplateTargetData        TemplateTarget = "Data"
 	TemplateTargetData        TemplateTarget = "Data"
 	TemplateTargetAnnotations TemplateTarget = "Annotations"
 	TemplateTargetAnnotations TemplateTarget = "Annotations"
 	TemplateTargetLabels      TemplateTarget = "Labels"
 	TemplateTargetLabels      TemplateTarget = "Labels"
 )
 )
 
 
+// TemplateRef specifies a reference to either a ConfigMap or a Secret resource.
 type TemplateRef struct {
 type TemplateRef struct {
 	// The name of the ConfigMap/Secret resource
 	// The name of the ConfigMap/Secret resource
 	// +kubebuilder:validation:MinLength:=1
 	// +kubebuilder:validation:MinLength:=1
@@ -170,6 +182,7 @@ type TemplateRef struct {
 	Items []TemplateRefItem `json:"items"`
 	Items []TemplateRefItem `json:"items"`
 }
 }
 
 
+// TemplateRefItem specifies a key in the ConfigMap/Secret to use as a template for Secret data.
 type TemplateRefItem struct {
 type TemplateRefItem struct {
 	// A key in the ConfigMap/Secret
 	// A key in the ConfigMap/Secret
 	// +kubebuilder:validation:MinLength:=1
 	// +kubebuilder:validation:MinLength:=1
@@ -181,8 +194,8 @@ type TemplateRefItem struct {
 	TemplateAs TemplateScope `json:"templateAs,omitempty"`
 	TemplateAs TemplateScope `json:"templateAs,omitempty"`
 }
 }
 
 
-// ExternalSecretTarget defines the Kubernetes Secret to be created
-// There can be only one target per ExternalSecret.
+// ExternalSecretTarget defines the Kubernetes Secret to be created,
+// there can be only one target per ExternalSecret.
 type ExternalSecretTarget struct {
 type ExternalSecretTarget struct {
 	// The name of the Secret resource to be managed.
 	// The name of the Secret resource to be managed.
 	// Defaults to the .metadata.name of the ExternalSecret resource
 	// Defaults to the .metadata.name of the ExternalSecret resource
@@ -259,32 +272,45 @@ type ExternalSecretDataRemoteRef struct {
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 }
 }
 
 
+// ExternalSecretMetadataPolicy defines policies for fetching metadata from provider secrets.
 // +kubebuilder:validation:Enum=None;Fetch
 // +kubebuilder:validation:Enum=None;Fetch
 type ExternalSecretMetadataPolicy string
 type ExternalSecretMetadataPolicy string
 
 
 const (
 const (
-	ExternalSecretMetadataPolicyNone  ExternalSecretMetadataPolicy = "None"
+	// ExternalSecretMetadataPolicyNone specifies that no metadata should be fetched from the provider.
+	ExternalSecretMetadataPolicyNone ExternalSecretMetadataPolicy = "None"
+	// ExternalSecretMetadataPolicyFetch specifies that metadata should be fetched from the provider.
 	ExternalSecretMetadataPolicyFetch ExternalSecretMetadataPolicy = "Fetch"
 	ExternalSecretMetadataPolicyFetch ExternalSecretMetadataPolicy = "Fetch"
 )
 )
 
 
+// ExternalSecretConversionStrategy defines strategies for converting secret values.
 // +kubebuilder:validation:Enum=Default;Unicode
 // +kubebuilder:validation:Enum=Default;Unicode
 type ExternalSecretConversionStrategy string
 type ExternalSecretConversionStrategy string
 
 
 const (
 const (
+	// ExternalSecretConversionDefault specifies the default conversion strategy.
 	ExternalSecretConversionDefault ExternalSecretConversionStrategy = "Default"
 	ExternalSecretConversionDefault ExternalSecretConversionStrategy = "Default"
+	// ExternalSecretConversionUnicode specifies that values should be treated as Unicode.
 	ExternalSecretConversionUnicode ExternalSecretConversionStrategy = "Unicode"
 	ExternalSecretConversionUnicode ExternalSecretConversionStrategy = "Unicode"
 )
 )
 
 
+// ExternalSecretDecodingStrategy defines strategies for decoding secret values.
 // +kubebuilder:validation:Enum=Auto;Base64;Base64URL;None
 // +kubebuilder:validation:Enum=Auto;Base64;Base64URL;None
 type ExternalSecretDecodingStrategy string
 type ExternalSecretDecodingStrategy string
 
 
 const (
 const (
-	ExternalSecretDecodeAuto      ExternalSecretDecodingStrategy = "Auto"
-	ExternalSecretDecodeBase64    ExternalSecretDecodingStrategy = "Base64"
+	// ExternalSecretDecodeAuto specifies automatic detection of the decoding method.
+	ExternalSecretDecodeAuto ExternalSecretDecodingStrategy = "Auto"
+	// ExternalSecretDecodeBase64 specifies that values should be decoded using Base64.
+	ExternalSecretDecodeBase64 ExternalSecretDecodingStrategy = "Base64"
+	// ExternalSecretDecodeBase64URL specifies that values should be decoded using Base64URL.
 	ExternalSecretDecodeBase64URL ExternalSecretDecodingStrategy = "Base64URL"
 	ExternalSecretDecodeBase64URL ExternalSecretDecodingStrategy = "Base64URL"
-	ExternalSecretDecodeNone      ExternalSecretDecodingStrategy = "None"
+	// ExternalSecretDecodeNone specifies that no decoding should be performed.
+	ExternalSecretDecodeNone ExternalSecretDecodingStrategy = "None"
 )
 )
 
 
+// ExternalSecretDataFromRemoteRef defines the connection between the Kubernetes Secret keys and the Provider data
+// when using DataFrom to fetch multiple values from a Provider.
 type ExternalSecretDataFromRemoteRef struct {
 type ExternalSecretDataFromRemoteRef struct {
 	// Used to extract multiple key/value pairs from one secret
 	// Used to extract multiple key/value pairs from one secret
 	// Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
 	// Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
@@ -309,6 +335,7 @@ type ExternalSecretDataFromRemoteRef struct {
 	SourceRef *StoreGeneratorSourceRef `json:"sourceRef,omitempty"`
 	SourceRef *StoreGeneratorSourceRef `json:"sourceRef,omitempty"`
 }
 }
 
 
+// ExternalSecretRewrite defines how to rewrite secret data values before they are written to the Secret.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type ExternalSecretRewrite struct {
 type ExternalSecretRewrite struct {
@@ -329,6 +356,7 @@ type ExternalSecretRewrite struct {
 	Transform *ExternalSecretRewriteTransform `json:"transform,omitempty"`
 	Transform *ExternalSecretRewriteTransform `json:"transform,omitempty"`
 }
 }
 
 
+// ExternalSecretRewriteMerge defines configuration for merging secret values.
 type ExternalSecretRewriteMerge struct {
 type ExternalSecretRewriteMerge struct {
 	// Used to define the target key of the merge operation.
 	// Used to define the target key of the merge operation.
 	// Required if strategy is JSON. Ignored otherwise.
 	// Required if strategy is JSON. Ignored otherwise.
@@ -356,30 +384,40 @@ type ExternalSecretRewriteMerge struct {
 	Strategy ExternalSecretRewriteMergeStrategy `json:"strategy,omitempty"`
 	Strategy ExternalSecretRewriteMergeStrategy `json:"strategy,omitempty"`
 }
 }
 
 
+// ExternalSecretRewriteMergeConflictPolicy defines the policy for resolving conflicts when merging secrets.
 // +kubebuilder:validation:Enum=Ignore;Error
 // +kubebuilder:validation:Enum=Ignore;Error
 type ExternalSecretRewriteMergeConflictPolicy string
 type ExternalSecretRewriteMergeConflictPolicy string
 
 
 const (
 const (
+	// ExternalSecretRewriteMergeConflictPolicyIgnore ignores conflicts when merging secret values.
 	ExternalSecretRewriteMergeConflictPolicyIgnore ExternalSecretRewriteMergeConflictPolicy = "Ignore"
 	ExternalSecretRewriteMergeConflictPolicyIgnore ExternalSecretRewriteMergeConflictPolicy = "Ignore"
-	ExternalSecretRewriteMergeConflictPolicyError  ExternalSecretRewriteMergeConflictPolicy = "Error"
+	// ExternalSecretRewriteMergeConflictPolicyError returns an error when conflicts occur during merge.
+	ExternalSecretRewriteMergeConflictPolicyError ExternalSecretRewriteMergeConflictPolicy = "Error"
 )
 )
 
 
+// ExternalSecretRewriteMergePriorityPolicy defines the policy for handling missing keys in the priority
+// list during merge operations.
 // +kubebuilder:validation:Enum=IgnoreNotFound;Strict
 // +kubebuilder:validation:Enum=IgnoreNotFound;Strict
 type ExternalSecretRewriteMergePriorityPolicy string
 type ExternalSecretRewriteMergePriorityPolicy string
 
 
+// These constants define the priority policies for merging secrets.
 const (
 const (
 	ExternalSecretRewriteMergePriorityPolicyIgnoreNotFound ExternalSecretRewriteMergePriorityPolicy = "IgnoreNotFound"
 	ExternalSecretRewriteMergePriorityPolicyIgnoreNotFound ExternalSecretRewriteMergePriorityPolicy = "IgnoreNotFound"
 	ExternalSecretRewriteMergePriorityPolicyStrict         ExternalSecretRewriteMergePriorityPolicy = "Strict"
 	ExternalSecretRewriteMergePriorityPolicyStrict         ExternalSecretRewriteMergePriorityPolicy = "Strict"
 )
 )
 
 
+// ExternalSecretRewriteMergeStrategy defines the strategy for merging secrets.
 // +kubebuilder:validation:Enum=Extract;JSON
 // +kubebuilder:validation:Enum=Extract;JSON
 type ExternalSecretRewriteMergeStrategy string
 type ExternalSecretRewriteMergeStrategy string
 
 
 const (
 const (
+	// ExternalSecretRewriteMergeStrategyExtract merges secrets by extracting values.
 	ExternalSecretRewriteMergeStrategyExtract ExternalSecretRewriteMergeStrategy = "Extract"
 	ExternalSecretRewriteMergeStrategyExtract ExternalSecretRewriteMergeStrategy = "Extract"
-	ExternalSecretRewriteMergeStrategyJSON    ExternalSecretRewriteMergeStrategy = "JSON"
+	// ExternalSecretRewriteMergeStrategyJSON merges secrets using JSON merge strategy.
+	ExternalSecretRewriteMergeStrategyJSON ExternalSecretRewriteMergeStrategy = "JSON"
 )
 )
 
 
+// ExternalSecretRewriteRegexp defines configuration for rewriting secrets using regular expressions.
 type ExternalSecretRewriteRegexp struct {
 type ExternalSecretRewriteRegexp struct {
 	// Used to define the regular expression of a re.Compiler.
 	// Used to define the regular expression of a re.Compiler.
 	Source string `json:"source"`
 	Source string `json:"source"`
@@ -387,12 +425,14 @@ type ExternalSecretRewriteRegexp struct {
 	Target string `json:"target"`
 	Target string `json:"target"`
 }
 }
 
 
+// ExternalSecretRewriteTransform defines configuration for transforming secrets using templates.
 type ExternalSecretRewriteTransform struct {
 type ExternalSecretRewriteTransform struct {
 	// Used to define the template to apply on the secret name.
 	// Used to define the template to apply on the secret name.
 	// `.value ` will specify the secret name in the template.
 	// `.value ` will specify the secret name in the template.
 	Template string `json:"template"`
 	Template string `json:"template"`
 }
 }
 
 
+// ExternalSecretFind defines configuration for finding secrets in the provider.
 type ExternalSecretFind struct {
 type ExternalSecretFind struct {
 	// A root path to start the find operations.
 	// A root path to start the find operations.
 	// +optional
 	// +optional
@@ -417,19 +457,24 @@ type ExternalSecretFind struct {
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 }
 }
 
 
+// FindName defines criteria for finding secrets by name patterns.
 type FindName struct {
 type FindName struct {
 	// Finds secrets base
 	// Finds secrets base
 	// +optional
 	// +optional
 	RegExp string `json:"regexp,omitempty"`
 	RegExp string `json:"regexp,omitempty"`
 }
 }
 
 
+// ExternalSecretRefreshPolicy defines how and when the ExternalSecret should be refreshed.
 // +kubebuilder:validation:Enum=CreatedOnce;Periodic;OnChange
 // +kubebuilder:validation:Enum=CreatedOnce;Periodic;OnChange
 type ExternalSecretRefreshPolicy string
 type ExternalSecretRefreshPolicy string
 
 
 const (
 const (
+	// RefreshPolicyCreatedOnce creates the Secret once and does not update it thereafter.
 	RefreshPolicyCreatedOnce ExternalSecretRefreshPolicy = "CreatedOnce"
 	RefreshPolicyCreatedOnce ExternalSecretRefreshPolicy = "CreatedOnce"
-	RefreshPolicyPeriodic    ExternalSecretRefreshPolicy = "Periodic"
-	RefreshPolicyOnChange    ExternalSecretRefreshPolicy = "OnChange"
+	// RefreshPolicyPeriodic synchronizes the Secret from the provider at regular intervals.
+	RefreshPolicyPeriodic ExternalSecretRefreshPolicy = "Periodic"
+	// RefreshPolicyOnChange only synchronizes when the ExternalSecret's metadata or spec changes.
+	RefreshPolicyOnChange ExternalSecretRefreshPolicy = "OnChange"
 )
 )
 
 
 // ExternalSecretSpec defines the desired state of ExternalSecret.
 // ExternalSecretSpec defines the desired state of ExternalSecret.
@@ -514,14 +559,18 @@ type GeneratorRef struct {
 	Name string `json:"name"`
 	Name string `json:"name"`
 }
 }
 
 
+// ExternalSecretConditionType defines a value type for ExternalSecret conditions.
 // +kubebuilder:validation:Enum=Ready;Deleted
 // +kubebuilder:validation:Enum=Ready;Deleted
 type ExternalSecretConditionType string
 type ExternalSecretConditionType string
 
 
 const (
 const (
-	ExternalSecretReady   ExternalSecretConditionType = "Ready"
+	// ExternalSecretReady indicates that the external secret is ready and synced.
+	ExternalSecretReady ExternalSecretConditionType = "Ready"
+	// ExternalSecretDeleted indicates that the external secret has been deleted.
 	ExternalSecretDeleted ExternalSecretConditionType = "Deleted"
 	ExternalSecretDeleted ExternalSecretConditionType = "Deleted"
 )
 )
 
 
+// ExternalSecretStatusCondition defines a status condition of an ExternalSecret resource.
 type ExternalSecretStatusCondition struct {
 type ExternalSecretStatusCondition struct {
 	Type   ExternalSecretConditionType `json:"type"`
 	Type   ExternalSecretConditionType `json:"type"`
 	Status corev1.ConditionStatus      `json:"status"`
 	Status corev1.ConditionStatus      `json:"status"`
@@ -546,14 +595,21 @@ const (
 	// ConditionReasonSecretMissing indicates that the secret is missing.
 	// ConditionReasonSecretMissing indicates that the secret is missing.
 	ConditionReasonSecretMissing = "SecretMissing"
 	ConditionReasonSecretMissing = "SecretMissing"
 
 
-	ReasonUpdateFailed          = "UpdateFailed"
-	ReasonDeprecated            = "ParameterDeprecated"
-	ReasonCreated               = "Created"
-	ReasonUpdated               = "Updated"
-	ReasonDeleted               = "Deleted"
+	// ReasonUpdateFailed indicates that the update operation failed.
+	ReasonUpdateFailed = "UpdateFailed"
+	// ReasonDeprecated indicates that a parameter is deprecated.
+	ReasonDeprecated = "ParameterDeprecated"
+	// ReasonCreated indicates that a resource has been created.
+	ReasonCreated = "Created"
+	// ReasonUpdated indicates that a resource has been updated.
+	ReasonUpdated = "Updated"
+	// ReasonDeleted indicates that a resource has been deleted.
+	ReasonDeleted = "Deleted"
+	// ReasonMissingProviderSecret indicates that the provider secret is missing.
 	ReasonMissingProviderSecret = "MissingProviderSecret"
 	ReasonMissingProviderSecret = "MissingProviderSecret"
 )
 )
 
 
+// ExternalSecretStatus defines the observed state of ExternalSecret.
 type ExternalSecretStatus struct {
 type ExternalSecretStatus struct {
 	// +nullable
 	// +nullable
 	// refreshTime is the time and date the external secret was fetched and
 	// refreshTime is the time and date the external secret was fetched and
@@ -570,9 +626,10 @@ type ExternalSecretStatus struct {
 	Binding corev1.LocalObjectReference `json:"binding,omitempty"`
 	Binding corev1.LocalObjectReference `json:"binding,omitempty"`
 }
 }
 
 
+// ExternalSecret is the Schema for the external-secrets API.
+// It defines how to fetch data from external APIs and make it available as Kubernetes Secrets.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
-// ExternalSecret is the Schema for the external-secrets API.
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:resource:scope=Namespaced,categories={external-secrets},shortName=es
 // +kubebuilder:resource:scope=Namespaced,categories={external-secrets},shortName=es
@@ -600,7 +657,9 @@ const (
 	AnnotationForceSync = "external-secrets.io/force-sync"
 	AnnotationForceSync = "external-secrets.io/force-sync"
 
 
 	// LabelManaged all secrets managed by an ExternalSecret will have this label equal to "true".
 	// LabelManaged all secrets managed by an ExternalSecret will have this label equal to "true".
-	LabelManaged      = "reconcile.external-secrets.io/managed"
+	LabelManaged = "reconcile.external-secrets.io/managed"
+
+	// LabelManagedValue is the value for the LabelManaged key, always set to "true".
 	LabelManagedValue = "true"
 	LabelManagedValue = "true"
 
 
 	// LabelOwner points to the owning ExternalSecret resource when CreationPolicy=Owner.
 	// LabelOwner points to the owning ExternalSecret resource when CreationPolicy=Owner.

+ 7 - 0
apis/externalsecrets/v1/externalsecret_validator.go

@@ -25,16 +25,23 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 )
 )
 
 
+// Ensures ExternalSecretValidator implements the admission.CustomValidator interface correctly.
+var _ admission.CustomValidator = &ExternalSecretValidator{}
+
+// ExternalSecretValidator implements a validating webhook for ExternalSecrets.
 type ExternalSecretValidator struct{}
 type ExternalSecretValidator struct{}
 
 
+// ValidateCreate is called on creation of ExternalSecret resource object.
 func (esv *ExternalSecretValidator) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error) {
 func (esv *ExternalSecretValidator) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error) {
 	return validateExternalSecret(obj)
 	return validateExternalSecret(obj)
 }
 }
 
 
+// ValidateUpdate is called when updating an ExternalSecret resource object.
 func (esv *ExternalSecretValidator) ValidateUpdate(_ context.Context, _, newObj runtime.Object) (admission.Warnings, error) {
 func (esv *ExternalSecretValidator) ValidateUpdate(_ context.Context, _, newObj runtime.Object) (admission.Warnings, error) {
 	return validateExternalSecret(newObj)
 	return validateExternalSecret(newObj)
 }
 }
 
 
+// ValidateDelete is called when deleting an ExternalSecret resource object.
 func (esv *ExternalSecretValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
 func (esv *ExternalSecretValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
 	return nil, nil
 	return nil, nil
 }
 }

+ 1 - 0
apis/externalsecrets/v1/externalsecret_webhook.go

@@ -20,6 +20,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 )
 )
 
 
+// SetupWebhookWithManager sets up the webhook for ExternalSecret.
 func (es *ExternalSecret) SetupWebhookWithManager(mgr ctrl.Manager) error {
 func (es *ExternalSecret) SetupWebhookWithManager(mgr ctrl.Manager) error {
 	return ctrl.NewWebhookManagedBy(mgr).
 	return ctrl.NewWebhookManagedBy(mgr).
 		For(es).
 		For(es).

+ 9 - 0
apis/externalsecrets/v1/fakes/pushremoteref.go

@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 */
 */
 
 
+// Package fakes contains fake implementations for testing purposes.
 package fakes
 package fakes
 
 
 import (
 import (
@@ -22,6 +23,7 @@ import (
 	"github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 	"github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 )
 )
 
 
+// PushRemoteRef is a fake implementation of the PushRemoteRef interface for testing.
 type PushRemoteRef struct {
 type PushRemoteRef struct {
 	GetRemoteKeyStub        func() string
 	GetRemoteKeyStub        func() string
 	getRemoteKeyMutex       sync.RWMutex
 	getRemoteKeyMutex       sync.RWMutex
@@ -37,6 +39,7 @@ type PushRemoteRef struct {
 	invocationsMutex sync.RWMutex
 	invocationsMutex sync.RWMutex
 }
 }
 
 
+// GetRemoteKey returns a string representing the remote key.
 func (fake *PushRemoteRef) GetRemoteKey() string {
 func (fake *PushRemoteRef) GetRemoteKey() string {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	ret, specificReturn := fake.getRemoteKeyReturnsOnCall[len(fake.getRemoteKeyArgsForCall)]
 	ret, specificReturn := fake.getRemoteKeyReturnsOnCall[len(fake.getRemoteKeyArgsForCall)]
@@ -55,22 +58,26 @@ func (fake *PushRemoteRef) GetRemoteKey() string {
 	return fakeReturns.result1
 	return fakeReturns.result1
 }
 }
 
 
+// GetProperty returns the property value as a string.
 func (fake *PushRemoteRef) GetProperty() string {
 func (fake *PushRemoteRef) GetProperty() string {
 	return ""
 	return ""
 }
 }
 
 
+// GetRemoteKeyCallCount returns the number of times GetRemoteKey has been called.
 func (fake *PushRemoteRef) GetRemoteKeyCallCount() int {
 func (fake *PushRemoteRef) GetRemoteKeyCallCount() int {
 	fake.getRemoteKeyMutex.RLock()
 	fake.getRemoteKeyMutex.RLock()
 	defer fake.getRemoteKeyMutex.RUnlock()
 	defer fake.getRemoteKeyMutex.RUnlock()
 	return len(fake.getRemoteKeyArgsForCall)
 	return len(fake.getRemoteKeyArgsForCall)
 }
 }
 
 
+// GetRemoteKeyCalls sets a custom stub function for the GetRemoteKey method.
 func (fake *PushRemoteRef) GetRemoteKeyCalls(stub func() string) {
 func (fake *PushRemoteRef) GetRemoteKeyCalls(stub func() string) {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	fake.GetRemoteKeyStub = stub
 	fake.GetRemoteKeyStub = stub
 }
 }
 
 
+// GetRemoteKeyReturns sets return values that will be returned by GetRemoteKey.
 func (fake *PushRemoteRef) GetRemoteKeyReturns(result1 string) {
 func (fake *PushRemoteRef) GetRemoteKeyReturns(result1 string) {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	defer fake.getRemoteKeyMutex.Unlock()
@@ -80,6 +87,7 @@ func (fake *PushRemoteRef) GetRemoteKeyReturns(result1 string) {
 	}{result1}
 	}{result1}
 }
 }
 
 
+// GetRemoteKeyReturnsOnCall sets return values for specific calls to GetRemoteKey.
 func (fake *PushRemoteRef) GetRemoteKeyReturnsOnCall(i int, result1 string) {
 func (fake *PushRemoteRef) GetRemoteKeyReturnsOnCall(i int, result1 string) {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	defer fake.getRemoteKeyMutex.Unlock()
@@ -94,6 +102,7 @@ func (fake *PushRemoteRef) GetRemoteKeyReturnsOnCall(i int, result1 string) {
 	}{result1}
 	}{result1}
 }
 }
 
 
+// Invocations returns a map recording the calls to methods on this fake.
 func (fake *PushRemoteRef) Invocations() map[string][][]any {
 func (fake *PushRemoteRef) Invocations() map[string][][]any {
 	fake.invocationsMutex.RLock()
 	fake.invocationsMutex.RLock()
 	defer fake.invocationsMutex.RUnlock()
 	defer fake.invocationsMutex.RUnlock()

+ 16 - 0
apis/externalsecrets/v1/generic_store.go

@@ -49,34 +49,42 @@ type GenericStore interface {
 // +kubebuilder:object:generate:false
 // +kubebuilder:object:generate:false
 var _ GenericStore = &SecretStore{}
 var _ GenericStore = &SecretStore{}
 
 
+// GetObjectMeta returns the ObjectMeta of the SecretStore.
 func (c *SecretStore) GetObjectMeta() *metav1.ObjectMeta {
 func (c *SecretStore) GetObjectMeta() *metav1.ObjectMeta {
 	return &c.ObjectMeta
 	return &c.ObjectMeta
 }
 }
 
 
+// GetTypeMeta returns the TypeMeta of the SecretStore.
 func (c *SecretStore) GetTypeMeta() *metav1.TypeMeta {
 func (c *SecretStore) GetTypeMeta() *metav1.TypeMeta {
 	return &c.TypeMeta
 	return &c.TypeMeta
 }
 }
 
 
+// GetSpec returns the Spec of the SecretStore.
 func (c *SecretStore) GetSpec() *SecretStoreSpec {
 func (c *SecretStore) GetSpec() *SecretStoreSpec {
 	return &c.Spec
 	return &c.Spec
 }
 }
 
 
+// GetStatus returns the Status of the SecretStore.
 func (c *SecretStore) GetStatus() SecretStoreStatus {
 func (c *SecretStore) GetStatus() SecretStoreStatus {
 	return c.Status
 	return c.Status
 }
 }
 
 
+// SetStatus sets the Status of the SecretStore.
 func (c *SecretStore) SetStatus(status SecretStoreStatus) {
 func (c *SecretStore) SetStatus(status SecretStoreStatus) {
 	c.Status = status
 	c.Status = status
 }
 }
 
 
+// GetNamespacedName returns the namespaced name of the SecretStore in the format "namespace/name".
 func (c *SecretStore) GetNamespacedName() string {
 func (c *SecretStore) GetNamespacedName() string {
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 }
 }
 
 
+// GetKind returns the kind of the SecretStore.
 func (c *SecretStore) GetKind() string {
 func (c *SecretStore) GetKind() string {
 	return SecretStoreKind
 	return SecretStoreKind
 }
 }
 
 
+// Copy returns a deep copy of the SecretStore.
 func (c *SecretStore) Copy() GenericStore {
 func (c *SecretStore) Copy() GenericStore {
 	return c.DeepCopy()
 	return c.DeepCopy()
 }
 }
@@ -85,34 +93,42 @@ func (c *SecretStore) Copy() GenericStore {
 // +kubebuilder:object:generate:false
 // +kubebuilder:object:generate:false
 var _ GenericStore = &ClusterSecretStore{}
 var _ GenericStore = &ClusterSecretStore{}
 
 
+// GetObjectMeta returns the ObjectMeta of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetObjectMeta() *metav1.ObjectMeta {
 func (c *ClusterSecretStore) GetObjectMeta() *metav1.ObjectMeta {
 	return &c.ObjectMeta
 	return &c.ObjectMeta
 }
 }
 
 
+// GetTypeMeta returns the TypeMeta of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetTypeMeta() *metav1.TypeMeta {
 func (c *ClusterSecretStore) GetTypeMeta() *metav1.TypeMeta {
 	return &c.TypeMeta
 	return &c.TypeMeta
 }
 }
 
 
+// GetSpec returns the Spec of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetSpec() *SecretStoreSpec {
 func (c *ClusterSecretStore) GetSpec() *SecretStoreSpec {
 	return &c.Spec
 	return &c.Spec
 }
 }
 
 
+// Copy returns a deep copy of the ClusterSecretStore.
 func (c *ClusterSecretStore) Copy() GenericStore {
 func (c *ClusterSecretStore) Copy() GenericStore {
 	return c.DeepCopy()
 	return c.DeepCopy()
 }
 }
 
 
+// GetStatus returns the Status of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetStatus() SecretStoreStatus {
 func (c *ClusterSecretStore) GetStatus() SecretStoreStatus {
 	return c.Status
 	return c.Status
 }
 }
 
 
+// SetStatus sets the Status of the ClusterSecretStore.
 func (c *ClusterSecretStore) SetStatus(status SecretStoreStatus) {
 func (c *ClusterSecretStore) SetStatus(status SecretStoreStatus) {
 	c.Status = status
 	c.Status = status
 }
 }
 
 
+// GetNamespacedName returns the namespaced name of the ClusterSecretStore in the format "namespace/name".
 func (c *ClusterSecretStore) GetNamespacedName() string {
 func (c *ClusterSecretStore) GetNamespacedName() string {
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 }
 }
 
 
+// GetKind returns the kind of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetKind() string {
 func (c *ClusterSecretStore) GetKind() string {
 	return ClusterSecretStoreKind
 	return ClusterSecretStoreKind
 }
 }

+ 8 - 4
apis/externalsecrets/v1/provider.go

@@ -25,18 +25,19 @@ import (
 )
 )
 
 
 const (
 const (
-	// Ready indicates that the client is configured correctly
+	// ValidationResultReady indicates that the client is configured correctly
 	// and can be used.
 	// and can be used.
 	ValidationResultReady ValidationResult = iota
 	ValidationResultReady ValidationResult = iota
 
 
-	// Unknown indicates that the client can be used
-	// but information is missing and it can not be validated.
+	// ValidationResultUnknown indicates that the client can be used
+	// but information is missing, and it can not be validated.
 	ValidationResultUnknown
 	ValidationResultUnknown
 
 
-	// Error indicates that there is a misconfiguration.
+	// ValidationResultError indicates that there is a misconfiguration.
 	ValidationResultError
 	ValidationResultError
 )
 )
 
 
+// ValidationResult is defined type for the number of validation results.
 type ValidationResult uint8
 type ValidationResult uint8
 
 
 func (v ValidationResult) String() string {
 func (v ValidationResult) String() string {
@@ -98,6 +99,7 @@ type SecretsClient interface {
 	Close(ctx context.Context) error
 	Close(ctx context.Context) error
 }
 }
 
 
+// NoSecretErr is a sentinel error for when a secret is not found.
 var NoSecretErr = NoSecretError{}
 var NoSecretErr = NoSecretError{}
 
 
 // NoSecretError shall be returned when a GetSecret can not find the
 // NoSecretError shall be returned when a GetSecret can not find the
@@ -108,6 +110,8 @@ func (NoSecretError) Error() string {
 	return "Secret does not exist"
 	return "Secret does not exist"
 }
 }
 
 
+// NotModifiedErr is a sentinel error to signal that the webhook received no changes,
+// and it should just return without doing anything.
 var NotModifiedErr = NotModifiedError{}
 var NotModifiedErr = NotModifiedError{}
 
 
 // NotModifiedError to signal that the webhook received no changes,
 // NotModifiedError to signal that the webhook received no changes,

+ 7 - 0
apis/externalsecrets/v1/provider_schema_maintenance.go

@@ -21,8 +21,10 @@ import (
 	"sync"
 	"sync"
 )
 )
 
 
+// MaintenanceStatus defines a type for different maintenance states of a provider schema.
 type MaintenanceStatus bool
 type MaintenanceStatus bool
 
 
+// These are the defined maintenance states for a provider schema.
 const (
 const (
 	MaintenanceStatusMaintained    MaintenanceStatus = true
 	MaintenanceStatusMaintained    MaintenanceStatus = true
 	MaintenanceStatusNotMaintained MaintenanceStatus = false
 	MaintenanceStatusNotMaintained MaintenanceStatus = false
@@ -35,6 +37,8 @@ func init() {
 	maintenance = make(map[string]MaintenanceStatus)
 	maintenance = make(map[string]MaintenanceStatus)
 }
 }
 
 
+// RegisterMaintenanceStatus registers the maintenance status of the provider from the generic store.
+// It panics if the provider is already registered or if there is an error getting the provider name.
 func RegisterMaintenanceStatus(status MaintenanceStatus, storeSpec *SecretStoreProvider) {
 func RegisterMaintenanceStatus(status MaintenanceStatus, storeSpec *SecretStoreProvider) {
 	storeName, err := getProviderName(storeSpec)
 	storeName, err := getProviderName(storeSpec)
 	if err != nil {
 	if err != nil {
@@ -51,6 +55,9 @@ func RegisterMaintenanceStatus(status MaintenanceStatus, storeSpec *SecretStoreP
 	maintenance[storeName] = status
 	maintenance[storeName] = status
 }
 }
 
 
+// ForceRegisterMaintenanceStatus registers the maintenance status of the provider from the generic store.
+// It panics if there is an error getting the provider name, it overwrites existing provider status or
+// stores new status for a provider if it exists.
 func ForceRegisterMaintenanceStatus(status MaintenanceStatus, storeSpec *SecretStoreProvider) {
 func ForceRegisterMaintenanceStatus(status MaintenanceStatus, storeSpec *SecretStoreProvider) {
 	storeName, err := getProviderName(storeSpec)
 	storeName, err := getProviderName(storeSpec)
 	if err != nil {
 	if err != nil {

+ 3 - 1
apis/externalsecrets/v1/register.go

@@ -35,7 +35,9 @@ var (
 
 
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
-	AddToScheme   = SchemeBuilder.AddToScheme
+
+	// AddToScheme adds the types in this group version to the given scheme.
+	AddToScheme = SchemeBuilder.AddToScheme
 )
 )
 
 
 // ExternalSecret type metadata.
 // ExternalSecret type metadata.

+ 3 - 1
apis/externalsecrets/v1/secretsstore_delinea_types.go

@@ -18,6 +18,7 @@ package v1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// DelineaProviderSecretRef is a secret reference containing either a direct value or a reference to a secret key.
 type DelineaProviderSecretRef struct {
 type DelineaProviderSecretRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,7 +30,8 @@ type DelineaProviderSecretRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
-// See https://github.com/DelineaXPM/dsv-sdk-go/blob/main/vault/vault.go.
+// DelineaProvider provides access to Delinea secrets vault Server.
+// See: https://github.com/DelineaXPM/dsv-sdk-go/blob/main/vault/vault.go.
 type DelineaProvider struct {
 type DelineaProvider struct {
 
 
 	// ClientID is the non-secret part of the credential.
 	// ClientID is the non-secret part of the credential.

+ 14 - 2
apis/externalsecrets/v1/secretsstore_infisical_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// UniversalAuthCredentials represents the client credentials for universal authentication.
 type UniversalAuthCredentials struct {
 type UniversalAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	ClientID esmeta.SecretKeySelector `json:"clientId"`
 	ClientID esmeta.SecretKeySelector `json:"clientId"`
@@ -27,6 +28,7 @@ type UniversalAuthCredentials struct {
 	ClientSecret esmeta.SecretKeySelector `json:"clientSecret"`
 	ClientSecret esmeta.SecretKeySelector `json:"clientSecret"`
 }
 }
 
 
+// AzureAuthCredentials represents the credentials for Azure authentication.
 type AzureAuthCredentials struct {
 type AzureAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
@@ -34,11 +36,13 @@ type AzureAuthCredentials struct {
 	Resource esmeta.SecretKeySelector `json:"resource"`
 	Resource esmeta.SecretKeySelector `json:"resource"`
 }
 }
 
 
-type GcpIdTokenAuthCredentials struct {
+// GcpIDTokenAuthCredentials represents the credentials for GCP ID token authentication.
+type GcpIDTokenAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 }
 }
 
 
+// GcpIamAuthCredentials represents the credentials for GCP IAM authentication.
 type GcpIamAuthCredentials struct {
 type GcpIamAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
@@ -46,6 +50,7 @@ type GcpIamAuthCredentials struct {
 	ServiceAccountKeyFilePath esmeta.SecretKeySelector `json:"serviceAccountKeyFilePath"`
 	ServiceAccountKeyFilePath esmeta.SecretKeySelector `json:"serviceAccountKeyFilePath"`
 }
 }
 
 
+// JwtAuthCredentials represents the credentials for JWT authentication.
 type JwtAuthCredentials struct {
 type JwtAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
@@ -53,6 +58,7 @@ type JwtAuthCredentials struct {
 	JWT esmeta.SecretKeySelector `json:"jwt"`
 	JWT esmeta.SecretKeySelector `json:"jwt"`
 }
 }
 
 
+// LdapAuthCredentials represents the credentials for LDAP authentication.
 type LdapAuthCredentials struct {
 type LdapAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
@@ -62,6 +68,7 @@ type LdapAuthCredentials struct {
 	LDAPUsername esmeta.SecretKeySelector `json:"ldapUsername"`
 	LDAPUsername esmeta.SecretKeySelector `json:"ldapUsername"`
 }
 }
 
 
+// OciAuthCredentials represents the credentials for OCI authentication.
 type OciAuthCredentials struct {
 type OciAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
@@ -79,6 +86,7 @@ type OciAuthCredentials struct {
 	Region esmeta.SecretKeySelector `json:"region"`
 	Region esmeta.SecretKeySelector `json:"region"`
 }
 }
 
 
+// KubernetesAuthCredentials represents the credentials for Kubernetes authentication.
 type KubernetesAuthCredentials struct {
 type KubernetesAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
@@ -86,23 +94,26 @@ type KubernetesAuthCredentials struct {
 	ServiceAccountTokenPath esmeta.SecretKeySelector `json:"serviceAccountTokenPath"`
 	ServiceAccountTokenPath esmeta.SecretKeySelector `json:"serviceAccountTokenPath"`
 }
 }
 
 
+// AwsAuthCredentials represents the credentials for AWS authentication.
 type AwsAuthCredentials struct {
 type AwsAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 	IdentityID esmeta.SecretKeySelector `json:"identityId"`
 }
 }
 
 
+// TokenAuthCredentials represents the credentials for access token-based authentication.
 type TokenAuthCredentials struct {
 type TokenAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	AccessToken esmeta.SecretKeySelector `json:"accessToken"`
 	AccessToken esmeta.SecretKeySelector `json:"accessToken"`
 }
 }
 
 
+// InfisicalAuth specifies the authentication configuration for Infisical.
 type InfisicalAuth struct {
 type InfisicalAuth struct {
 	// +optional
 	// +optional
 	UniversalAuthCredentials *UniversalAuthCredentials `json:"universalAuthCredentials,omitempty"`
 	UniversalAuthCredentials *UniversalAuthCredentials `json:"universalAuthCredentials,omitempty"`
 	// +optional
 	// +optional
 	AzureAuthCredentials *AzureAuthCredentials `json:"azureAuthCredentials,omitempty"`
 	AzureAuthCredentials *AzureAuthCredentials `json:"azureAuthCredentials,omitempty"`
 	// +optional
 	// +optional
-	GcpIdTokenAuthCredentials *GcpIdTokenAuthCredentials `json:"gcpIdTokenAuthCredentials,omitempty"`
+	GcpIDTokenAuthCredentials *GcpIDTokenAuthCredentials `json:"gcpIdTokenAuthCredentials,omitempty"`
 	// +optional
 	// +optional
 	GcpIamAuthCredentials *GcpIamAuthCredentials `json:"gcpIamAuthCredentials,omitempty"`
 	GcpIamAuthCredentials *GcpIamAuthCredentials `json:"gcpIamAuthCredentials,omitempty"`
 	// +optional
 	// +optional
@@ -119,6 +130,7 @@ type InfisicalAuth struct {
 	TokenAuthCredentials *TokenAuthCredentials `json:"tokenAuthCredentials,omitempty"`
 	TokenAuthCredentials *TokenAuthCredentials `json:"tokenAuthCredentials,omitempty"`
 }
 }
 
 
+// MachineIdentityScopeInWorkspace defines the scope for machine identity within a workspace.
 type MachineIdentityScopeInWorkspace struct {
 type MachineIdentityScopeInWorkspace struct {
 	// SecretsPath specifies the path to the secrets within the workspace. Defaults to "/" if not provided.
 	// SecretsPath specifies the path to the secrets within the workspace. Defaults to "/" if not provided.
 	// +kubebuilder:default="/"
 	// +kubebuilder:default="/"

+ 3 - 1
apis/externalsecrets/v1/secretsstore_passbolt_types.go

@@ -20,12 +20,14 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Passbolt contains a secretRef for the passbolt credentials.
+// PassboltAuth contains a secretRef for the passbolt credentials.
 type PassboltAuth struct {
 type PassboltAuth struct {
 	PasswordSecretRef   *esmeta.SecretKeySelector `json:"passwordSecretRef"`
 	PasswordSecretRef   *esmeta.SecretKeySelector `json:"passwordSecretRef"`
 	PrivateKeySecretRef *esmeta.SecretKeySelector `json:"privateKeySecretRef"`
 	PrivateKeySecretRef *esmeta.SecretKeySelector `json:"privateKeySecretRef"`
 }
 }
 
 
+// PassboltProvider provides access to Passbolt secrets manager.
+// See: https://www.passbolt.com.
 type PassboltProvider struct {
 type PassboltProvider struct {
 	// Auth defines the information necessary to authenticate against Passbolt Server
 	// Auth defines the information necessary to authenticate against Passbolt Server
 	Auth *PassboltAuth `json:"auth"`
 	Auth *PassboltAuth `json:"auth"`

+ 4 - 1
apis/externalsecrets/v1/secretsstore_secretserver_types.go

@@ -18,6 +18,8 @@ package v1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// SecretServerProviderRef references a value that can be specified directly or via a secret
+// for a SecretServerProvider.
 type SecretServerProviderRef struct {
 type SecretServerProviderRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,7 +31,8 @@ type SecretServerProviderRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
-// See https://github.com/DelineaXPM/tss-sdk-go/blob/main/server/server.go.
+// SecretServerProvider provides access to authenticate to a secrets provider server.
+// See: https://github.com/DelineaXPM/tss-sdk-go/blob/main/server/server.go.
 type SecretServerProvider struct {
 type SecretServerProvider struct {
 
 
 	// Username is the secret server account username.
 	// Username is the secret server account username.

+ 5 - 2
apis/externalsecrets/v1/secretstore_akeyless_types.go

@@ -40,6 +40,7 @@ type AkeylessProvider struct {
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 }
 }
 
 
+// AkeylessAuth configures how the operator authenticates with Akeyless.
 type AkeylessAuth struct {
 type AkeylessAuth struct {
 
 
 	// Reference to a Secret that contains the details
 	// Reference to a Secret that contains the details
@@ -53,7 +54,8 @@ type AkeylessAuth struct {
 	KubernetesAuth *AkeylessKubernetesAuth `json:"kubernetesAuth,omitempty"`
 	KubernetesAuth *AkeylessKubernetesAuth `json:"kubernetesAuth,omitempty"`
 }
 }
 
 
-// AkeylessAuthSecretRef
+// AkeylessAuthSecretRef references a Secret that contains the details
+// to authenticate with Akeyless.
 // AKEYLESS_ACCESS_TYPE_PARAM: AZURE_OBJ_ID OR GCP_AUDIENCE OR ACCESS_KEY OR KUB_CONFIG_NAME.
 // AKEYLESS_ACCESS_TYPE_PARAM: AZURE_OBJ_ID OR GCP_AUDIENCE OR ACCESS_KEY OR KUB_CONFIG_NAME.
 type AkeylessAuthSecretRef struct {
 type AkeylessAuthSecretRef struct {
 	// The SecretAccessID is used for authentication
 	// The SecretAccessID is used for authentication
@@ -62,7 +64,8 @@ type AkeylessAuthSecretRef struct {
 	AccessTypeParam esmeta.SecretKeySelector `json:"accessTypeParam,omitempty"`
 	AccessTypeParam esmeta.SecretKeySelector `json:"accessTypeParam,omitempty"`
 }
 }
 
 
-// Authenticate with Kubernetes ServiceAccount token stored.
+// AkeylessKubernetesAuth configures Kubernetes authentication with Akeyless.
+// It authenticates with Kubernetes ServiceAccount token stored.
 type AkeylessKubernetesAuth struct {
 type AkeylessKubernetesAuth struct {
 
 
 	// the Akeyless Kubernetes auth-method access-id
 	// the Akeyless Kubernetes auth-method access-id

+ 1 - 1
apis/externalsecrets/v1/secretstore_alibaba_types.go

@@ -36,7 +36,7 @@ type AlibabaAuthSecretRef struct {
 	AccessKeySecret esmeta.SecretKeySelector `json:"accessKeySecretSecretRef"`
 	AccessKeySecret esmeta.SecretKeySelector `json:"accessKeySecretSecretRef"`
 }
 }
 
 
-// Authenticate against Alibaba using RRSA.
+// AlibabaRRSAAuth authenticates against Alibaba using RRSA.
 type AlibabaRRSAAuth struct {
 type AlibabaRRSAAuth struct {
 	OIDCProviderARN   string `json:"oidcProviderArn"`
 	OIDCProviderARN   string `json:"oidcProviderArn"`
 	OIDCTokenFilePath string `json:"oidcTokenFilePath"`
 	OIDCTokenFilePath string `json:"oidcTokenFilePath"`

+ 4 - 2
apis/externalsecrets/v1/secretstore_aws_types.go

@@ -46,7 +46,7 @@ type AWSAuthSecretRef struct {
 	SessionToken *esmeta.SecretKeySelector `json:"sessionTokenSecretRef,omitempty"`
 	SessionToken *esmeta.SecretKeySelector `json:"sessionTokenSecretRef,omitempty"`
 }
 }
 
 
-// Authenticate against AWS using service account tokens.
+// AWSJWTAuth stores reference to Authenticate against AWS using service account tokens.
 type AWSJWTAuth struct {
 type AWSJWTAuth struct {
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 }
 }
@@ -79,12 +79,14 @@ type SecretsManager struct {
 	// The number of days from 7 to 30 that Secrets Manager waits before
 	// The number of days from 7 to 30 that Secrets Manager waits before
 	// permanently deleting the secret. You can't use both this parameter and
 	// permanently deleting the secret. You can't use both this parameter and
 	// ForceDeleteWithoutRecovery in the same call. If you don't use either,
 	// ForceDeleteWithoutRecovery in the same call. If you don't use either,
-	// then by default Secrets Manager uses a 30 day recovery window.
+	// then by default Secrets Manager uses a 30-day recovery window.
 	// see: https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html#SecretsManager-DeleteSecret-request-RecoveryWindowInDays
 	// see: https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html#SecretsManager-DeleteSecret-request-RecoveryWindowInDays
 	// +optional
 	// +optional
 	RecoveryWindowInDays int64 `json:"recoveryWindowInDays,omitempty"`
 	RecoveryWindowInDays int64 `json:"recoveryWindowInDays,omitempty"`
 }
 }
 
 
+// Tag is a key-value pair that can be attached to an AWS resource.
+// see: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
 type Tag struct {
 type Tag struct {
 	Key   string `json:"key"`
 	Key   string `json:"key"`
 	Value string `json:"value"`
 	Value string `json:"value"`

+ 8 - 7
apis/externalsecrets/v1/secretstore_azurekv_types.go

@@ -18,7 +18,7 @@ package v1
 
 
 import smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
-// AuthType describes how to authenticate to the Azure Keyvault
+// AzureAuthType describes how to authenticate to the Azure Keyvault
 // Only one of the following auth types may be specified.
 // Only one of the following auth types may be specified.
 // If none of the following auth type is specified, the default one
 // If none of the following auth type is specified, the default one
 // is ServicePrincipal.
 // is ServicePrincipal.
@@ -26,23 +26,24 @@ import smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 type AzureAuthType string
 type AzureAuthType string
 
 
 const (
 const (
-	// Using service principal to authenticate, which needs a tenantId, a clientId and a clientSecret.
+	// AzureServicePrincipal uses service principal to authenticate, which needs a tenantId, a clientId and a clientSecret.
 	AzureServicePrincipal AzureAuthType = "ServicePrincipal"
 	AzureServicePrincipal AzureAuthType = "ServicePrincipal"
 
 
-	// Using Managed Identity to authenticate. Used with aad-pod-identity installed in the cluster.
+	// AzureManagedIdentity uses Managed Identity to authenticate. Used with aad-pod-identity installed in the cluster.
 	AzureManagedIdentity AzureAuthType = "ManagedIdentity"
 	AzureManagedIdentity AzureAuthType = "ManagedIdentity"
 
 
-	// Using Workload Identity service accounts to authenticate.
+	// AzureWorkloadIdentity uses Workload Identity service accounts to authenticate.
 	AzureWorkloadIdentity AzureAuthType = "WorkloadIdentity"
 	AzureWorkloadIdentity AzureAuthType = "WorkloadIdentity"
 )
 )
 
 
 // AzureEnvironmentType specifies the Azure cloud environment endpoints to use for
 // AzureEnvironmentType specifies the Azure cloud environment endpoints to use for
-// connecting and authenticating with Azure. By default it points to the public cloud AAD endpoint.
+// connecting and authenticating with Azure. By default, it points to the public cloud AAD endpoint.
 // The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152
 // The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152
 // PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud, AzureStackCloud
 // PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud, AzureStackCloud
 // +kubebuilder:validation:Enum=PublicCloud;USGovernmentCloud;ChinaCloud;GermanCloud;AzureStackCloud
 // +kubebuilder:validation:Enum=PublicCloud;USGovernmentCloud;ChinaCloud;GermanCloud;AzureStackCloud
 type AzureEnvironmentType string
 type AzureEnvironmentType string
 
 
+// These define the several AzureEnvironmentType currently supported.
 const (
 const (
 	AzureEnvironmentPublicCloud       AzureEnvironmentType = "PublicCloud"
 	AzureEnvironmentPublicCloud       AzureEnvironmentType = "PublicCloud"
 	AzureEnvironmentUSGovernmentCloud AzureEnvironmentType = "USGovernmentCloud"
 	AzureEnvironmentUSGovernmentCloud AzureEnvironmentType = "USGovernmentCloud"
@@ -73,7 +74,7 @@ type AzureCustomCloudConfig struct {
 	ResourceManagerEndpoint *string `json:"resourceManagerEndpoint,omitempty"`
 	ResourceManagerEndpoint *string `json:"resourceManagerEndpoint,omitempty"`
 }
 }
 
 
-// Configures an store to sync secrets using Azure KV.
+// AzureKVProvider configures a store to sync secrets using Azure KV.
 type AzureKVProvider struct {
 type AzureKVProvider struct {
 	// Auth type defines how to authenticate to the keyvault service.
 	// Auth type defines how to authenticate to the keyvault service.
 	// Valid values are:
 	// Valid values are:
@@ -125,7 +126,7 @@ type AzureKVProvider struct {
 	CustomCloudConfig *AzureCustomCloudConfig `json:"customCloudConfig,omitempty"`
 	CustomCloudConfig *AzureCustomCloudConfig `json:"customCloudConfig,omitempty"`
 }
 }
 
 
-// Configuration used to authenticate with Azure.
+// AzureKVAuth is the configuration used to authenticate with Azure.
 type AzureKVAuth struct {
 type AzureKVAuth struct {
 	// The Azure clientId of the service principle or managed identity used for authentication.
 	// The Azure clientId of the service principle or managed identity used for authentication.
 	// +optional
 	// +optional

+ 5 - 2
apis/externalsecrets/v1/secretstore_beyondtrust_types.go

@@ -18,6 +18,8 @@ package v1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// BeyondTrustProviderSecretRef references a value that can be specified directly or via a secret
+// for a BeyondTrustProvider.
 type BeyondTrustProviderSecretRef struct {
 type BeyondTrustProviderSecretRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,7 +31,7 @@ type BeyondTrustProviderSecretRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
-// Configures a store to sync secrets using BeyondTrust Password Safe.
+// BeyondtrustAuth provides different ways to authenticate to a BeyondtrustProvider server.
 type BeyondtrustAuth struct {
 type BeyondtrustAuth struct {
 	// APIKey If not provided then ClientID/ClientSecret become required.
 	// APIKey If not provided then ClientID/ClientSecret become required.
 	APIKey *BeyondTrustProviderSecretRef `json:"apiKey,omitempty"`
 	APIKey *BeyondTrustProviderSecretRef `json:"apiKey,omitempty"`
@@ -43,7 +45,7 @@ type BeyondtrustAuth struct {
 	CertificateKey *BeyondTrustProviderSecretRef `json:"certificateKey,omitempty"`
 	CertificateKey *BeyondTrustProviderSecretRef `json:"certificateKey,omitempty"`
 }
 }
 
 
-// Configures a store to sync secrets using BeyondTrust Password Safe.
+// BeyondtrustServer configures a store to sync secrets using BeyondTrust Password Safe.
 type BeyondtrustServer struct {
 type BeyondtrustServer struct {
 	// +required - BeyondTrust Password Safe API URL. https://example.com:443/beyondtrust/api/public/V3.
 	// +required - BeyondTrust Password Safe API URL. https://example.com:443/beyondtrust/api/public/V3.
 	APIURL string `json:"apiUrl"`
 	APIURL string `json:"apiUrl"`
@@ -59,6 +61,7 @@ type BeyondtrustServer struct {
 	ClientTimeOutSeconds int `json:"clientTimeOutSeconds,omitempty"`
 	ClientTimeOutSeconds int `json:"clientTimeOutSeconds,omitempty"`
 }
 }
 
 
+// BeyondtrustProvider provides access to a BeyondTrust secrets provider.
 type BeyondtrustProvider struct {
 type BeyondtrustProvider struct {
 
 
 	// Auth configures how the operator authenticates with Beyondtrust.
 	// Auth configures how the operator authenticates with Beyondtrust.

+ 5 - 0
apis/externalsecrets/v1/secretstore_conjur_types.go

@@ -18,6 +18,7 @@ package v1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// ConjurProvider provides access to a Conjur provider.
 type ConjurProvider struct {
 type ConjurProvider struct {
 	// URL is the endpoint of the Conjur instance.
 	// URL is the endpoint of the Conjur instance.
 	URL string `json:"url"`
 	URL string `json:"url"`
@@ -36,6 +37,7 @@ type ConjurProvider struct {
 	Auth ConjurAuth `json:"auth"`
 	Auth ConjurAuth `json:"auth"`
 }
 }
 
 
+// ConjurAuth is the way to provide authentication credentials to the ConjurProvider.
 type ConjurAuth struct {
 type ConjurAuth struct {
 	// Authenticates with Conjur using an API key.
 	// Authenticates with Conjur using an API key.
 	// +optional
 	// +optional
@@ -46,6 +48,8 @@ type ConjurAuth struct {
 	Jwt *ConjurJWT `json:"jwt,omitempty"`
 	Jwt *ConjurJWT `json:"jwt,omitempty"`
 }
 }
 
 
+// ConjurAPIKey contains references to a Secret resource that holds
+// the Conjur username and API key.
 type ConjurAPIKey struct {
 type ConjurAPIKey struct {
 	// Account is the Conjur organization account name.
 	// Account is the Conjur organization account name.
 	Account string `json:"account"`
 	Account string `json:"account"`
@@ -59,6 +63,7 @@ type ConjurAPIKey struct {
 	APIKeyRef *esmeta.SecretKeySelector `json:"apiKeyRef"`
 	APIKeyRef *esmeta.SecretKeySelector `json:"apiKeyRef"`
 }
 }
 
 
+// ConjurJWT defines the JWT authentication configuration for Conjur provider.
 type ConjurJWT struct {
 type ConjurJWT struct {
 	// Account is the Conjur organization account name.
 	// Account is the Conjur organization account name.
 	Account string `json:"account"`
 	Account string `json:"account"`

+ 2 - 0
apis/externalsecrets/v1/secretstore_device42_types.go

@@ -29,10 +29,12 @@ type Device42Provider struct {
 	Auth Device42Auth `json:"auth"`
 	Auth Device42Auth `json:"auth"`
 }
 }
 
 
+// Device42Auth defines the authentication method for the Device42 provider.
 type Device42Auth struct {
 type Device42Auth struct {
 	SecretRef Device42SecretRef `json:"secretRef"`
 	SecretRef Device42SecretRef `json:"secretRef"`
 }
 }
 
 
+// Device42SecretRef contains the secret reference for accessing the Device42 instance.
 type Device42SecretRef struct {
 type Device42SecretRef struct {
 	// Username / Password is used for authentication.
 	// Username / Password is used for authentication.
 	// +optional
 	// +optional

+ 2 - 0
apis/externalsecrets/v1/secretstore_doppler_types.go

@@ -22,10 +22,12 @@ import (
 
 
 // Set DOPPLER_BASE_URL and DOPPLER_VERIFY_TLS environment variables to override defaults
 // Set DOPPLER_BASE_URL and DOPPLER_VERIFY_TLS environment variables to override defaults
 
 
+// DopplerAuth defines the authentication method for the Doppler provider.
 type DopplerAuth struct {
 type DopplerAuth struct {
 	SecretRef DopplerAuthSecretRef `json:"secretRef"`
 	SecretRef DopplerAuthSecretRef `json:"secretRef"`
 }
 }
 
 
+// DopplerAuthSecretRef contains the secret reference for accessing the Doppler API.
 type DopplerAuthSecretRef struct {
 type DopplerAuthSecretRef struct {
 	// The DopplerToken is used for authentication.
 	// The DopplerToken is used for authentication.
 	// See https://docs.doppler.com/reference/api#authentication for auth token types.
 	// See https://docs.doppler.com/reference/api#authentication for auth token types.

+ 1 - 0
apis/externalsecrets/v1/secretstore_fake_types.go

@@ -22,6 +22,7 @@ type FakeProvider struct {
 	ValidationResult *ValidationResult  `json:"validationResult,omitempty"`
 	ValidationResult *ValidationResult  `json:"validationResult,omitempty"`
 }
 }
 
 
+// FakeProviderData defines a key-value pair with optional version for the fake provider.
 type FakeProviderData struct {
 type FakeProviderData struct {
 	Key     string `json:"key"`
 	Key     string `json:"key"`
 	Value   string `json:"value"`
 	Value   string `json:"value"`

+ 3 - 0
apis/externalsecrets/v1/secretstore_fortanix_types.go

@@ -13,10 +13,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 */
 */
+
 package v1
 package v1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// FortanixProvider provides access to Fortanix SDKMS API using the provided credentials.
 type FortanixProvider struct {
 type FortanixProvider struct {
 	// APIURL is the URL of SDKMS API. Defaults to `sdkms.fortanix.com`.
 	// APIURL is the URL of SDKMS API. Defaults to `sdkms.fortanix.com`.
 	APIURL string `json:"apiUrl,omitempty"`
 	APIURL string `json:"apiUrl,omitempty"`
@@ -25,6 +27,7 @@ type FortanixProvider struct {
 	APIKey *FortanixProviderSecretRef `json:"apiKey,omitempty"`
 	APIKey *FortanixProviderSecretRef `json:"apiKey,omitempty"`
 }
 }
 
 
+// FortanixProviderSecretRef is a secret reference containing the SDKMS API Key.
 type FortanixProviderSecretRef struct {
 type FortanixProviderSecretRef struct {
 	// SecretRef is a reference to a secret containing the SDKMS API Key.
 	// SecretRef is a reference to a secret containing the SDKMS API Key.
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`

+ 4 - 0
apis/externalsecrets/v1/secretstore_gcpsm_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// SecretVersionSelectionPolicy defines the policy for selecting secret versions in GCP Secret Manager.
 type SecretVersionSelectionPolicy string
 type SecretVersionSelectionPolicy string
 
 
 const (
 const (
@@ -30,6 +31,7 @@ const (
 	SecretVersionSelectionPolicyLatestOrFetch SecretVersionSelectionPolicy = "LatestOrFetch"
 	SecretVersionSelectionPolicyLatestOrFetch SecretVersionSelectionPolicy = "LatestOrFetch"
 )
 )
 
 
+// GCPSMAuth defines the authentication methods for Google Cloud Platform Secret Manager.
 type GCPSMAuth struct {
 type GCPSMAuth struct {
 	// +optional
 	// +optional
 	SecretRef *GCPSMAuthSecretRef `json:"secretRef,omitempty"`
 	SecretRef *GCPSMAuthSecretRef `json:"secretRef,omitempty"`
@@ -39,12 +41,14 @@ type GCPSMAuth struct {
 	WorkloadIdentityFederation *GCPWorkloadIdentityFederation `json:"workloadIdentityFederation,omitempty"`
 	WorkloadIdentityFederation *GCPWorkloadIdentityFederation `json:"workloadIdentityFederation,omitempty"`
 }
 }
 
 
+// GCPSMAuthSecretRef contains the secret references for GCP Secret Manager authentication.
 type GCPSMAuthSecretRef struct {
 type GCPSMAuthSecretRef struct {
 	// The SecretAccessKey is used for authentication
 	// The SecretAccessKey is used for authentication
 	// +optional
 	// +optional
 	SecretAccessKey esmeta.SecretKeySelector `json:"secretAccessKeySecretRef,omitempty"`
 	SecretAccessKey esmeta.SecretKeySelector `json:"secretAccessKeySecretRef,omitempty"`
 }
 }
 
 
+// GCPWorkloadIdentity defines configuration for workload identity authentication to GCP.
 type GCPWorkloadIdentity struct {
 type GCPWorkloadIdentity struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	ServiceAccountRef esmeta.ServiceAccountSelector `json:"serviceAccountRef"`
 	ServiceAccountRef esmeta.ServiceAccountSelector `json:"serviceAccountRef"`

+ 2 - 1
apis/externalsecrets/v1/secretstore_github_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures a store to push secrets to Github Actions.
+// GithubProvider provides access and authentication to a GitHub instance .
 type GithubProvider struct {
 type GithubProvider struct {
 	// URL configures the Github instance URL. Defaults to https://github.com/.
 	// URL configures the Github instance URL. Defaults to https://github.com/.
 	//+kubebuilder:default="https://github.com/"
 	//+kubebuilder:default="https://github.com/"
@@ -49,6 +49,7 @@ type GithubProvider struct {
 	Environment string `json:"environment,omitempty"`
 	Environment string `json:"environment,omitempty"`
 }
 }
 
 
+// GithubAppAuth defines authentication configuration using a GitHub App for accessing GitHub API.
 type GithubAppAuth struct {
 type GithubAppAuth struct {
 	PrivateKey esmeta.SecretKeySelector `json:"privateKey"`
 	PrivateKey esmeta.SecretKeySelector `json:"privateKey"`
 }
 }

+ 3 - 1
apis/externalsecrets/v1/secretstore_gitlab_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures a store to sync secrets with a GitLab instance.
+// GitlabProvider configures a store to sync secrets with a GitLab instance.
 type GitlabProvider struct {
 type GitlabProvider struct {
 	// URL configures the GitLab instance URL. Defaults to https://gitlab.com/.
 	// URL configures the GitLab instance URL. Defaults to https://gitlab.com/.
 	URL string `json:"url,omitempty"`
 	URL string `json:"url,omitempty"`
@@ -49,10 +49,12 @@ type GitlabProvider struct {
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 }
 }
 
 
+// GitlabAuth defines the authentication method for accessing GitLab API.
 type GitlabAuth struct {
 type GitlabAuth struct {
 	SecretRef GitlabSecretRef `json:"SecretRef"`
 	SecretRef GitlabSecretRef `json:"SecretRef"`
 }
 }
 
 
+// GitlabSecretRef contains the secret reference for GitLab authentication credentials.
 type GitlabSecretRef struct {
 type GitlabSecretRef struct {
 	// AccessToken is used for authentication.
 	// AccessToken is used for authentication.
 	AccessToken esmeta.SecretKeySelector `json:"accessToken,omitempty"`
 	AccessToken esmeta.SecretKeySelector `json:"accessToken,omitempty"`

+ 4 - 2
apis/externalsecrets/v1/secretstore_ibm_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures an store to sync secrets using a IBM Cloud Secrets Manager
+// IBMProvider configures a store to sync secrets using a IBM Cloud Secrets Manager
 // backend.
 // backend.
 type IBMProvider struct {
 type IBMProvider struct {
 	// Auth configures how secret-manager authenticates with the IBM secrets manager.
 	// Auth configures how secret-manager authenticates with the IBM secrets manager.
@@ -30,6 +30,7 @@ type IBMProvider struct {
 	ServiceURL *string `json:"serviceUrl,omitempty"`
 	ServiceURL *string `json:"serviceUrl,omitempty"`
 }
 }
 
 
+// IBMAuth defines authentication options for connecting to IBM Cloud Secrets Manager.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type IBMAuth struct {
 type IBMAuth struct {
@@ -37,12 +38,13 @@ type IBMAuth struct {
 	ContainerAuth *IBMAuthContainerAuth `json:"containerAuth,omitempty"`
 	ContainerAuth *IBMAuthContainerAuth `json:"containerAuth,omitempty"`
 }
 }
 
 
+// IBMAuthSecretRef contains the secret reference for IBM Cloud API key authentication.
 type IBMAuthSecretRef struct {
 type IBMAuthSecretRef struct {
 	// The SecretAccessKey is used for authentication
 	// The SecretAccessKey is used for authentication
 	SecretAPIKey esmeta.SecretKeySelector `json:"secretApiKeySecretRef,omitempty"`
 	SecretAPIKey esmeta.SecretKeySelector `json:"secretApiKeySecretRef,omitempty"`
 }
 }
 
 
-// IBM Container-based auth with IAM Trusted Profile.
+// IBMAuthContainerAuth defines container-based authentication with IAM Trusted Profile.
 type IBMAuthContainerAuth struct {
 type IBMAuthContainerAuth struct {
 	// the IBM Trusted Profile
 	// the IBM Trusted Profile
 	Profile string `json:"profile"`
 	Profile string `json:"profile"`

+ 5 - 2
apis/externalsecrets/v1/secretstore_kubernetes_types.go

@@ -20,8 +20,8 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// KubernetesServer defines configuration for connecting to a Kubernetes API server.
 type KubernetesServer struct {
 type KubernetesServer struct {
-
 	// configures the Kubernetes server Address.
 	// configures the Kubernetes server Address.
 	// +kubebuilder:default=kubernetes.default
 	// +kubebuilder:default=kubernetes.default
 	// +optional
 	// +optional
@@ -36,7 +36,7 @@ type KubernetesServer struct {
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 }
 }
 
 
-// Configures a store to sync secrets with a Kubernetes instance.
+// KubernetesProvider configures a store to sync secrets with a Kubernetes instance.
 type KubernetesProvider struct {
 type KubernetesProvider struct {
 	// configures the Kubernetes server Address.
 	// configures the Kubernetes server Address.
 	// +optional
 	// +optional
@@ -59,6 +59,7 @@ type KubernetesProvider struct {
 	RemoteNamespace string `json:"remoteNamespace,omitempty"`
 	RemoteNamespace string `json:"remoteNamespace,omitempty"`
 }
 }
 
 
+// KubernetesAuth defines authentication options for connecting to a Kubernetes cluster.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type KubernetesAuth struct {
 type KubernetesAuth struct {
@@ -75,11 +76,13 @@ type KubernetesAuth struct {
 	ServiceAccount *esmeta.ServiceAccountSelector `json:"serviceAccount,omitempty"`
 	ServiceAccount *esmeta.ServiceAccountSelector `json:"serviceAccount,omitempty"`
 }
 }
 
 
+// CertAuth defines certificate-based authentication configuration for Kubernetes.
 type CertAuth struct {
 type CertAuth struct {
 	ClientCert esmeta.SecretKeySelector `json:"clientCert,omitempty"`
 	ClientCert esmeta.SecretKeySelector `json:"clientCert,omitempty"`
 	ClientKey  esmeta.SecretKeySelector `json:"clientKey,omitempty"`
 	ClientKey  esmeta.SecretKeySelector `json:"clientKey,omitempty"`
 }
 }
 
 
+// TokenAuth defines token-based authentication configuration for Kubernetes.
 type TokenAuth struct {
 type TokenAuth struct {
 	BearerToken esmeta.SecretKeySelector `json:"bearerToken,omitempty"`
 	BearerToken esmeta.SecretKeySelector `json:"bearerToken,omitempty"`
 }
 }

+ 3 - 0
apis/externalsecrets/v1/secretstore_ngrok_types.go

@@ -36,6 +36,7 @@ type NgrokProvider struct {
 	Vault NgrokVault `json:"vault"`
 	Vault NgrokVault `json:"vault"`
 }
 }
 
 
+// NgrokAuth configures the authentication method for the ngrok provider.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type NgrokAuth struct {
 type NgrokAuth struct {
@@ -44,12 +45,14 @@ type NgrokAuth struct {
 	APIKey *NgrokProviderSecretRef `json:"apiKey,omitempty"`
 	APIKey *NgrokProviderSecretRef `json:"apiKey,omitempty"`
 }
 }
 
 
+// NgrokVault configures the ngrok vault to sync secrets with.
 type NgrokVault struct {
 type NgrokVault struct {
 	// Name is the name of the ngrok vault to sync secrets with.
 	// Name is the name of the ngrok vault to sync secrets with.
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	Name string `json:"name"`
 	Name string `json:"name"`
 }
 }
 
 
+// NgrokProviderSecretRef contains the secret reference for the ngrok provider.
 type NgrokProviderSecretRef struct {
 type NgrokProviderSecretRef struct {
 	// SecretRef is a reference to a secret containing the ngrok API key.
 	// SecretRef is a reference to a secret containing the ngrok API key.
 	// +optional
 	// +optional

+ 4 - 2
apis/externalsecrets/v1/secretstore_oracle_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// OraclePrincipalType defines the type of principal used for authentication with Oracle Vault.
 // +kubebuilder:validation:Enum="";UserPrincipal;InstancePrincipal;Workload
 // +kubebuilder:validation:Enum="";UserPrincipal;InstancePrincipal;Workload
 type OraclePrincipalType string
 type OraclePrincipalType string
 
 
@@ -32,7 +33,7 @@ const (
 	WorkloadPrincipal OraclePrincipalType = "Workload"
 	WorkloadPrincipal OraclePrincipalType = "Workload"
 )
 )
 
 
-// Configures an store to sync secrets using a Oracle Vault
+// OracleProvider configures a store to sync secrets using an Oracle Vault
 // backend.
 // backend.
 type OracleProvider struct {
 type OracleProvider struct {
 	// Region is the region where vault is located.
 	// Region is the region where vault is located.
@@ -68,8 +69,8 @@ type OracleProvider struct {
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 }
 }
 
 
+// OracleAuth defines the authentication method for the Oracle Vault provider.
 type OracleAuth struct {
 type OracleAuth struct {
-
 	// Tenancy is the tenancy OCID where user is located.
 	// Tenancy is the tenancy OCID where user is located.
 	Tenancy string `json:"tenancy"`
 	Tenancy string `json:"tenancy"`
 
 
@@ -80,6 +81,7 @@ type OracleAuth struct {
 	SecretRef OracleSecretRef `json:"secretRef"`
 	SecretRef OracleSecretRef `json:"secretRef"`
 }
 }
 
 
+// OracleSecretRef contains the secret reference for Oracle Vault authentication credentials.
 type OracleSecretRef struct {
 type OracleSecretRef struct {
 	// PrivateKey is the user's API Signing Key in PEM format, used for authentication.
 	// PrivateKey is the user's API Signing Key in PEM format, used for authentication.
 	PrivateKey esmeta.SecretKeySelector `json:"privatekey"`
 	PrivateKey esmeta.SecretKeySelector `json:"privatekey"`

+ 3 - 1
apis/externalsecrets/v1/secretstore_passworddeport_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures a store to sync secrets with a Password Depot instance.
+// PasswordDepotProvider configures a store to sync secrets with a Password Depot instance.
 type PasswordDepotProvider struct {
 type PasswordDepotProvider struct {
 	// URL configures the Password Depot instance URL.
 	// URL configures the Password Depot instance URL.
 	Host string `json:"host"`
 	Host string `json:"host"`
@@ -32,10 +32,12 @@ type PasswordDepotProvider struct {
 	Auth PasswordDepotAuth `json:"auth"`
 	Auth PasswordDepotAuth `json:"auth"`
 }
 }
 
 
+// PasswordDepotAuth defines the authentication method for the Password Depot provider.
 type PasswordDepotAuth struct {
 type PasswordDepotAuth struct {
 	SecretRef PasswordDepotSecretRef `json:"secretRef"`
 	SecretRef PasswordDepotSecretRef `json:"secretRef"`
 }
 }
 
 
+// PasswordDepotSecretRef contains the secret reference for Password Depot authentication.
 type PasswordDepotSecretRef struct {
 type PasswordDepotSecretRef struct {
 	// Username / Password is used for authentication.
 	// Username / Password is used for authentication.
 	// +optional
 	// +optional

+ 2 - 0
apis/externalsecrets/v1/secretstore_pulumi_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// PulumiProvider defines configuration for accessing secrets from Pulumi ESC.
 type PulumiProvider struct {
 type PulumiProvider struct {
 	// APIURL is the URL of the Pulumi API.
 	// APIURL is the URL of the Pulumi API.
 	// +kubebuilder:default="https://api.pulumi.com/api/esc"
 	// +kubebuilder:default="https://api.pulumi.com/api/esc"
@@ -41,6 +42,7 @@ type PulumiProvider struct {
 	Environment string `json:"environment"`
 	Environment string `json:"environment"`
 }
 }
 
 
+// PulumiProviderSecretRef contains the secret reference for Pulumi authentication.
 type PulumiProviderSecretRef struct {
 type PulumiProviderSecretRef struct {
 	// SecretRef is a reference to a secret containing the Pulumi API token.
 	// SecretRef is a reference to a secret containing the Pulumi API token.
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`

+ 2 - 2
apis/externalsecrets/v1/secretstore_scaleway_types.go

@@ -18,8 +18,8 @@ package v1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// ScalewayProviderSecretRef defines the configuration for Scaleway secret references.
 type ScalewayProviderSecretRef struct {
 type ScalewayProviderSecretRef struct {
-
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
 	// +optional
 	// +optional
 	Value string `json:"value,omitempty"`
 	Value string `json:"value,omitempty"`
@@ -29,8 +29,8 @@ type ScalewayProviderSecretRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
+// ScalewayProvider defines the configuration for the Scaleway Secret Manager provider.
 type ScalewayProvider struct {
 type ScalewayProvider struct {
-
 	// APIURL is the url of the api to use. Defaults to https://api.scaleway.com
 	// APIURL is the url of the api to use. Defaults to https://api.scaleway.com
 	// +optional
 	// +optional
 	APIURL string `json:"apiUrl,omitempty"`
 	APIURL string `json:"apiUrl,omitempty"`

+ 17 - 5
apis/externalsecrets/v1/secretstore_types.go

@@ -220,16 +220,19 @@ type SecretStoreProvider struct {
 	Ngrok *NgrokProvider `json:"ngrok,omitempty"`
 	Ngrok *NgrokProvider `json:"ngrok,omitempty"`
 }
 }
 
 
+// CAProviderType defines the type of provider for certificate authority.
 type CAProviderType string
 type CAProviderType string
 
 
+// Supported CA provider types.
 const (
 const (
-	CAProviderTypeSecret    CAProviderType = "Secret"
+	// CAProviderTypeSecret indicates that the CA certificate is stored in a Secret resource.
+	CAProviderTypeSecret CAProviderType = "Secret"
+	// CAProviderTypeConfigMap indicates that the CA certificate is stored in a ConfigMap resource.
 	CAProviderTypeConfigMap CAProviderType = "ConfigMap"
 	CAProviderTypeConfigMap CAProviderType = "ConfigMap"
 )
 )
 
 
-// Used to provide custom certificate authority (CA) certificates
-// for a secret store. The CAProvider points to a Secret or ConfigMap resource
-// that contains a PEM-encoded certificate.
+// CAProvider provides a custom certificate authority for accessing the provider's store.
+// The CAProvider points to a Secret or ConfigMap resource that contains a PEM-encoded certificate.
 type CAProvider struct {
 type CAProvider struct {
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
@@ -257,14 +260,18 @@ type CAProvider struct {
 	Namespace *string `json:"namespace,omitempty"`
 	Namespace *string `json:"namespace,omitempty"`
 }
 }
 
 
+// SecretStoreRetrySettings defines the retry settings for accessing external secrets manager stores.
 type SecretStoreRetrySettings struct {
 type SecretStoreRetrySettings struct {
 	MaxRetries    *int32  `json:"maxRetries,omitempty"`
 	MaxRetries    *int32  `json:"maxRetries,omitempty"`
 	RetryInterval *string `json:"retryInterval,omitempty"`
 	RetryInterval *string `json:"retryInterval,omitempty"`
 }
 }
 
 
+// SecretStoreConditionType represents the condition of the SecretStore.
 type SecretStoreConditionType string
 type SecretStoreConditionType string
 
 
+// These are valid conditions of a secret store.
 const (
 const (
+	// SecretStoreReady indicates that the store is ready and able to serve requests.
 	SecretStoreReady SecretStoreConditionType = "Ready"
 	SecretStoreReady SecretStoreConditionType = "Ready"
 
 
 	ReasonInvalidStore          = "InvalidStoreConfiguration"
 	ReasonInvalidStore          = "InvalidStoreConfiguration"
@@ -275,6 +282,7 @@ const (
 	StoreUnmaintained           = "StoreUnmaintained"
 	StoreUnmaintained           = "StoreUnmaintained"
 )
 )
 
 
+// SecretStoreStatusCondition contains condition information for a SecretStore.
 type SecretStoreStatusCondition struct {
 type SecretStoreStatusCondition struct {
 	Type   SecretStoreConditionType `json:"type"`
 	Type   SecretStoreConditionType `json:"type"`
 	Status corev1.ConditionStatus   `json:"status"`
 	Status corev1.ConditionStatus   `json:"status"`
@@ -292,9 +300,13 @@ type SecretStoreStatusCondition struct {
 // SecretStoreCapabilities defines the possible operations a SecretStore can do.
 // SecretStoreCapabilities defines the possible operations a SecretStore can do.
 type SecretStoreCapabilities string
 type SecretStoreCapabilities string
 
 
+// These are the valid capabilities of a secret store.
 const (
 const (
-	SecretStoreReadOnly  SecretStoreCapabilities = "ReadOnly"
+	// SecretStoreReadOnly indicates that the store can only read secrets.
+	SecretStoreReadOnly SecretStoreCapabilities = "ReadOnly"
+	// SecretStoreWriteOnly indicates that the store can only write secrets.
 	SecretStoreWriteOnly SecretStoreCapabilities = "WriteOnly"
 	SecretStoreWriteOnly SecretStoreCapabilities = "WriteOnly"
+	// SecretStoreReadWrite indicates that the store can both read and write secrets.
 	SecretStoreReadWrite SecretStoreCapabilities = "ReadWrite"
 	SecretStoreReadWrite SecretStoreCapabilities = "ReadWrite"
 )
 )
 
 

+ 2 - 0
apis/externalsecrets/v1/secretstore_validator.go

@@ -26,6 +26,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 )
 )
 
 
+// Ensures ExternalSecretValidator implements the admission.CustomValidator interface correctly.
 var _ admission.CustomValidator = &GenericStoreValidator{}
 var _ admission.CustomValidator = &GenericStoreValidator{}
 
 
 const (
 const (
@@ -33,6 +34,7 @@ const (
 	warnStoreUnmaintained = "store %s isn't currently maintained. Please plan and prepare accordingly."
 	warnStoreUnmaintained = "store %s isn't currently maintained. Please plan and prepare accordingly."
 )
 )
 
 
+// GenericStoreValidator implements webhook validation for SecretStore and ClusterSecretStore resources.
 type GenericStoreValidator struct{}
 type GenericStoreValidator struct{}
 
 
 // ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
 // ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

+ 5 - 3
apis/externalsecrets/v1/secretstore_vault_types.go

@@ -20,14 +20,16 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// VaultKVStoreVersion represents the version of the Vault KV secret engine.
 type VaultKVStoreVersion string
 type VaultKVStoreVersion string
 
 
+// These are the currently supported VaultKVStoreVersion.
 const (
 const (
 	VaultKVStoreV1 VaultKVStoreVersion = "v1"
 	VaultKVStoreV1 VaultKVStoreVersion = "v1"
 	VaultKVStoreV2 VaultKVStoreVersion = "v2"
 	VaultKVStoreV2 VaultKVStoreVersion = "v2"
 )
 )
 
 
-// Configures an store to sync secrets using a HashiCorp Vault
+// VaultProvider configures a store to sync secrets using a HashiCorp Vault
 // KV backend.
 // KV backend.
 type VaultProvider struct {
 type VaultProvider struct {
 	// Auth configures how secret-manager authenticates with the Vault server.
 	// Auth configures how secret-manager authenticates with the Vault server.
@@ -194,7 +196,7 @@ type VaultAppRole struct {
 	SecretRef esmeta.SecretKeySelector `json:"secretRef"`
 	SecretRef esmeta.SecretKeySelector `json:"secretRef"`
 }
 }
 
 
-// Authenticate against Vault using a Kubernetes ServiceAccount token stored in
+// VaultKubernetesAuth authenticates against Vault using a Kubernetes ServiceAccount token stored in
 // a Secret.
 // a Secret.
 type VaultKubernetesAuth struct {
 type VaultKubernetesAuth struct {
 	// Path where the Kubernetes authentication backend is mounted in Vault, e.g:
 	// Path where the Kubernetes authentication backend is mounted in Vault, e.g:
@@ -250,7 +252,7 @@ type VaultAwsAuth struct {
 	JWTAuth *VaultAwsJWTAuth `json:"jwt,omitempty"`
 	JWTAuth *VaultAwsJWTAuth `json:"jwt,omitempty"`
 }
 }
 
 
-// VaultAWSAuthSecretRef holds secret references for AWS credentials
+// VaultAwsAuthSecretRef holds secret references for AWS credentials
 // both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.
 // both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.
 type VaultAwsAuthSecretRef struct {
 type VaultAwsAuthSecretRef struct {
 	// The AccessKeyID is used for authentication
 	// The AccessKeyID is used for authentication

+ 2 - 0
apis/externalsecrets/v1/secretstore_webhook.go

@@ -20,6 +20,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 )
 )
 
 
+// SetupWebhookWithManager registers the SecretStore webhook with the controller manager.
 func (c *SecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 func (c *SecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 	return ctrl.NewWebhookManagedBy(mgr).
 	return ctrl.NewWebhookManagedBy(mgr).
 		For(c).
 		For(c).
@@ -27,6 +28,7 @@ func (c *SecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 		Complete()
 		Complete()
 }
 }
 
 
+// SetupWebhookWithManager registers the ClusterSecretStore webhook with the controller manager.
 func (c *ClusterSecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 func (c *ClusterSecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 	return ctrl.NewWebhookManagedBy(mgr).
 	return ctrl.NewWebhookManagedBy(mgr).
 		For(c).
 		For(c).

+ 10 - 3
apis/externalsecrets/v1/secretstore_webhook_types.go

@@ -22,7 +22,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// WebHookProvider Configures an store to sync secrets from simple web apis.
+// WebhookProvider configures a store to sync secrets from simple web APIs.
 type WebhookProvider struct {
 type WebhookProvider struct {
 	// Webhook Method
 	// Webhook Method
 	// +optional, default GET
 	// +optional, default GET
@@ -84,14 +84,19 @@ type NTLMProtocol struct {
 	UserName esmeta.SecretKeySelector `json:"usernameSecret"`
 	UserName esmeta.SecretKeySelector `json:"usernameSecret"`
 	Password esmeta.SecretKeySelector `json:"passwordSecret"`
 	Password esmeta.SecretKeySelector `json:"passwordSecret"`
 }
 }
+
+// WebhookCAProviderType defines the type of provider for certificate authority in webhook connections.
 type WebhookCAProviderType string
 type WebhookCAProviderType string
 
 
+// These are valid CA provider types for webhook connections.
 const (
 const (
-	WebhookCAProviderTypeSecret    WebhookCAProviderType = "Secret"
+	// WebhookCAProviderTypeSecret indicates that the CA certificate is stored in a Secret resource.
+	WebhookCAProviderTypeSecret WebhookCAProviderType = "Secret"
+	// WebhookCAProviderTypeConfigMap indicates that the CA certificate is stored in a ConfigMap resource.
 	WebhookCAProviderTypeConfigMap WebhookCAProviderType = "ConfigMap"
 	WebhookCAProviderTypeConfigMap WebhookCAProviderType = "ConfigMap"
 )
 )
 
 
-// Defines a location to fetch the cert for the webhook provider from.
+// WebhookCAProvider defines a location to fetch the cert for the webhook provider from.
 type WebhookCAProvider struct {
 type WebhookCAProvider struct {
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
@@ -118,12 +123,14 @@ type WebhookCAProvider struct {
 	Namespace *string `json:"namespace,omitempty"`
 	Namespace *string `json:"namespace,omitempty"`
 }
 }
 
 
+// WebhookResult defines how to process and extract secrets from the webhook response.
 type WebhookResult struct {
 type WebhookResult struct {
 	// Json path of return value
 	// Json path of return value
 	// +optional
 	// +optional
 	JSONPath string `json:"jsonPath,omitempty"`
 	JSONPath string `json:"jsonPath,omitempty"`
 }
 }
 
 
+// WebhookSecret defines a secret that will be passed to the webhook request.
 type WebhookSecret struct {
 type WebhookSecret struct {
 	// Name of this secret in templates
 	// Name of this secret in templates
 	Name string `json:"name"`
 	Name string `json:"name"`

+ 3 - 0
apis/externalsecrets/v1/secretstore_yandex_types.go

@@ -20,12 +20,14 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// YandexAuth defines the authentication method for the Yandex provider.
 type YandexAuth struct {
 type YandexAuth struct {
 	// The authorized key used for authentication
 	// The authorized key used for authentication
 	// +optional
 	// +optional
 	AuthorizedKey esmeta.SecretKeySelector `json:"authorizedKeySecretRef,omitempty"`
 	AuthorizedKey esmeta.SecretKeySelector `json:"authorizedKeySecretRef,omitempty"`
 }
 }
 
 
+// YandexCAProvider defines the configuration for Yandex custom certificate authority.
 type YandexCAProvider struct {
 type YandexCAProvider struct {
 	Certificate esmeta.SecretKeySelector `json:"certSecretRef,omitempty"`
 	Certificate esmeta.SecretKeySelector `json:"certSecretRef,omitempty"`
 }
 }
@@ -39,6 +41,7 @@ type ByName struct {
 	FolderID string `json:"folderID"`
 	FolderID string `json:"folderID"`
 }
 }
 
 
+// FetchingPolicy configures how the provider interprets the `data.secretKey.remoteRef.key` field in ExternalSecret.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type FetchingPolicy struct {
 type FetchingPolicy struct {

+ 12 - 12
apis/externalsecrets/v1/zz_generated.deepcopy.go

@@ -2009,34 +2009,34 @@ func (in *GCPWorkloadIdentityFederation) DeepCopy() *GCPWorkloadIdentityFederati
 }
 }
 
 
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GcpIamAuthCredentials) DeepCopyInto(out *GcpIamAuthCredentials) {
+func (in *GcpIDTokenAuthCredentials) DeepCopyInto(out *GcpIDTokenAuthCredentials) {
 	*out = *in
 	*out = *in
 	in.IdentityID.DeepCopyInto(&out.IdentityID)
 	in.IdentityID.DeepCopyInto(&out.IdentityID)
-	in.ServiceAccountKeyFilePath.DeepCopyInto(&out.ServiceAccountKeyFilePath)
 }
 }
 
 
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcpIamAuthCredentials.
-func (in *GcpIamAuthCredentials) DeepCopy() *GcpIamAuthCredentials {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcpIDTokenAuthCredentials.
+func (in *GcpIDTokenAuthCredentials) DeepCopy() *GcpIDTokenAuthCredentials {
 	if in == nil {
 	if in == nil {
 		return nil
 		return nil
 	}
 	}
-	out := new(GcpIamAuthCredentials)
+	out := new(GcpIDTokenAuthCredentials)
 	in.DeepCopyInto(out)
 	in.DeepCopyInto(out)
 	return out
 	return out
 }
 }
 
 
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GcpIdTokenAuthCredentials) DeepCopyInto(out *GcpIdTokenAuthCredentials) {
+func (in *GcpIamAuthCredentials) DeepCopyInto(out *GcpIamAuthCredentials) {
 	*out = *in
 	*out = *in
 	in.IdentityID.DeepCopyInto(&out.IdentityID)
 	in.IdentityID.DeepCopyInto(&out.IdentityID)
+	in.ServiceAccountKeyFilePath.DeepCopyInto(&out.ServiceAccountKeyFilePath)
 }
 }
 
 
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcpIdTokenAuthCredentials.
-func (in *GcpIdTokenAuthCredentials) DeepCopy() *GcpIdTokenAuthCredentials {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GcpIamAuthCredentials.
+func (in *GcpIamAuthCredentials) DeepCopy() *GcpIamAuthCredentials {
 	if in == nil {
 	if in == nil {
 		return nil
 		return nil
 	}
 	}
-	out := new(GcpIdTokenAuthCredentials)
+	out := new(GcpIamAuthCredentials)
 	in.DeepCopyInto(out)
 	in.DeepCopyInto(out)
 	return out
 	return out
 }
 }
@@ -2256,9 +2256,9 @@ func (in *InfisicalAuth) DeepCopyInto(out *InfisicalAuth) {
 		*out = new(AzureAuthCredentials)
 		*out = new(AzureAuthCredentials)
 		(*in).DeepCopyInto(*out)
 		(*in).DeepCopyInto(*out)
 	}
 	}
-	if in.GcpIdTokenAuthCredentials != nil {
-		in, out := &in.GcpIdTokenAuthCredentials, &out.GcpIdTokenAuthCredentials
-		*out = new(GcpIdTokenAuthCredentials)
+	if in.GcpIDTokenAuthCredentials != nil {
+		in, out := &in.GcpIDTokenAuthCredentials, &out.GcpIDTokenAuthCredentials
+		*out = new(GcpIDTokenAuthCredentials)
 		(*in).DeepCopyInto(*out)
 		(*in).DeepCopyInto(*out)
 	}
 	}
 	if in.GcpIamAuthCredentials != nil {
 	if in.GcpIamAuthCredentials != nil {

+ 35 - 6
apis/externalsecrets/v1alpha1/pushsecret_types.go

@@ -24,11 +24,15 @@ import (
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 )
 )
 
 
+// PushSecret condition reasons.
 const (
 const (
-	ReasonSynced  = "Synced"
+	// ReasonSynced indicates that the push secret was successfully synced to the provider.
+	ReasonSynced = "Synced"
+	// ReasonErrored indicates that the push secret encountered an error during sync.
 	ReasonErrored = "Errored"
 	ReasonErrored = "Errored"
 )
 )
 
 
+// PushSecretStoreRef contains a reference on how to sync to a SecretStore.
 type PushSecretStoreRef struct {
 type PushSecretStoreRef struct {
 	// Optionally, sync to the SecretStore of the given name
 	// Optionally, sync to the SecretStore of the given name
 	// +optional
 	// +optional
@@ -48,27 +52,36 @@ type PushSecretStoreRef struct {
 	Kind string `json:"kind,omitempty"`
 	Kind string `json:"kind,omitempty"`
 }
 }
 
 
+// PushSecretUpdatePolicy defines how push secrets are updated in the provider.
 // +kubebuilder:validation:Enum=Replace;IfNotExists
 // +kubebuilder:validation:Enum=Replace;IfNotExists
 type PushSecretUpdatePolicy string
 type PushSecretUpdatePolicy string
 
 
 const (
 const (
-	PushSecretUpdatePolicyReplace     PushSecretUpdatePolicy = "Replace"
+	// PushSecretUpdatePolicyReplace replaces existing secrets in the provider.
+	PushSecretUpdatePolicyReplace PushSecretUpdatePolicy = "Replace"
+	// PushSecretUpdatePolicyIfNotExists only creates secrets that don't exist in the provider.
 	PushSecretUpdatePolicyIfNotExists PushSecretUpdatePolicy = "IfNotExists"
 	PushSecretUpdatePolicyIfNotExists PushSecretUpdatePolicy = "IfNotExists"
 )
 )
 
 
+// PushSecretDeletionPolicy defines how push secrets are deleted in the provider.
 // +kubebuilder:validation:Enum=Delete;None
 // +kubebuilder:validation:Enum=Delete;None
 type PushSecretDeletionPolicy string
 type PushSecretDeletionPolicy string
 
 
 const (
 const (
+	// PushSecretDeletionPolicyDelete deletes secrets from the provider when the PushSecret is deleted.
 	PushSecretDeletionPolicyDelete PushSecretDeletionPolicy = "Delete"
 	PushSecretDeletionPolicyDelete PushSecretDeletionPolicy = "Delete"
-	PushSecretDeletionPolicyNone   PushSecretDeletionPolicy = "None"
+	// PushSecretDeletionPolicyNone keeps secrets in the provider when the PushSecret is deleted.
+	PushSecretDeletionPolicyNone PushSecretDeletionPolicy = "None"
 )
 )
 
 
+// PushSecretConversionStrategy defines how secret values are converted when pushed to providers.
 // +kubebuilder:validation:Enum=None;ReverseUnicode
 // +kubebuilder:validation:Enum=None;ReverseUnicode
 type PushSecretConversionStrategy string
 type PushSecretConversionStrategy string
 
 
 const (
 const (
-	PushSecretConversionNone           PushSecretConversionStrategy = "None"
+	// PushSecretConversionNone indicates no conversion will be performed on the secret value.
+	PushSecretConversionNone PushSecretConversionStrategy = "None"
+	// PushSecretConversionReverseUnicode indicates that unicode escape sequences will be reversed.
 	PushSecretConversionReverseUnicode PushSecretConversionStrategy = "ReverseUnicode"
 	PushSecretConversionReverseUnicode PushSecretConversionStrategy = "ReverseUnicode"
 )
 )
 
 
@@ -101,6 +114,7 @@ type PushSecretSpec struct {
 	Template *esv1.ExternalSecretTemplate `json:"template,omitempty"`
 	Template *esv1.ExternalSecretTemplate `json:"template,omitempty"`
 }
 }
 
 
+// PushSecretSecret defines a Secret that will be used as a source for pushing to providers.
 type PushSecretSecret struct {
 type PushSecretSecret struct {
 	// Name of the Secret.
 	// Name of the Secret.
 	// The Secret must exist in the same namespace as the PushSecret manifest.
 	// The Secret must exist in the same namespace as the PushSecret manifest.
@@ -115,6 +129,7 @@ type PushSecretSecret struct {
 	Selector *metav1.LabelSelector `json:"selector,omitempty"`
 	Selector *metav1.LabelSelector `json:"selector,omitempty"`
 }
 }
 
 
+// PushSecretSelector defines criteria for selecting the source Secret for pushing to providers.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type PushSecretSelector struct {
 type PushSecretSelector struct {
@@ -127,6 +142,7 @@ type PushSecretSelector struct {
 	GeneratorRef *esv1.GeneratorRef `json:"generatorRef,omitempty"`
 	GeneratorRef *esv1.GeneratorRef `json:"generatorRef,omitempty"`
 }
 }
 
 
+// PushSecretRemoteRef defines the location of the secret in the provider.
 type PushSecretRemoteRef struct {
 type PushSecretRemoteRef struct {
 	// Name of the resulting provider secret.
 	// Name of the resulting provider secret.
 	RemoteKey string `json:"remoteKey"`
 	RemoteKey string `json:"remoteKey"`
@@ -136,14 +152,17 @@ type PushSecretRemoteRef struct {
 	Property string `json:"property,omitempty"`
 	Property string `json:"property,omitempty"`
 }
 }
 
 
+// GetRemoteKey returns the RemoteKey of this reference.
 func (r PushSecretRemoteRef) GetRemoteKey() string {
 func (r PushSecretRemoteRef) GetRemoteKey() string {
 	return r.RemoteKey
 	return r.RemoteKey
 }
 }
 
 
+// GetProperty returns the Property of this reference.
 func (r PushSecretRemoteRef) GetProperty() string {
 func (r PushSecretRemoteRef) GetProperty() string {
 	return r.Property
 	return r.Property
 }
 }
 
 
+// PushSecretMatch defines how a source Secret key maps to a destination in the provider.
 type PushSecretMatch struct {
 type PushSecretMatch struct {
 	// Secret Key to be pushed
 	// Secret Key to be pushed
 	// +optional
 	// +optional
@@ -152,6 +171,7 @@ type PushSecretMatch struct {
 	RemoteRef PushSecretRemoteRef `json:"remoteRef"`
 	RemoteRef PushSecretRemoteRef `json:"remoteRef"`
 }
 }
 
 
+// PushSecretData defines data to be pushed to the provider and associated metadata.
 type PushSecretData struct {
 type PushSecretData struct {
 	// Match a given Secret Key to be pushed to the provider.
 	// Match a given Secret Key to be pushed to the provider.
 	Match PushSecretMatch `json:"match"`
 	Match PushSecretMatch `json:"match"`
@@ -165,18 +185,22 @@ type PushSecretData struct {
 	ConversionStrategy PushSecretConversionStrategy `json:"conversionStrategy,omitempty"`
 	ConversionStrategy PushSecretConversionStrategy `json:"conversionStrategy,omitempty"`
 }
 }
 
 
+// GetMetadata returns the metadata of the PushSecretData.
 func (d PushSecretData) GetMetadata() *apiextensionsv1.JSON {
 func (d PushSecretData) GetMetadata() *apiextensionsv1.JSON {
 	return d.Metadata
 	return d.Metadata
 }
 }
 
 
+// GetSecretKey returns the secret key from the PushSecretData match.
 func (d PushSecretData) GetSecretKey() string {
 func (d PushSecretData) GetSecretKey() string {
 	return d.Match.SecretKey
 	return d.Match.SecretKey
 }
 }
 
 
+// GetRemoteKey returns the remote key from the PushSecretData match.
 func (d PushSecretData) GetRemoteKey() string {
 func (d PushSecretData) GetRemoteKey() string {
 	return d.Match.RemoteRef.RemoteKey
 	return d.Match.RemoteRef.RemoteKey
 }
 }
 
 
+// GetProperty returns the property from the PushSecretData match.
 func (d PushSecretData) GetProperty() string {
 func (d PushSecretData) GetProperty() string {
 	return d.Match.RemoteRef.Property
 	return d.Match.RemoteRef.Property
 }
 }
@@ -185,6 +209,7 @@ func (d PushSecretData) GetProperty() string {
 type PushSecretConditionType string
 type PushSecretConditionType string
 
 
 const (
 const (
+	// PushSecretReady indicates the PushSecret resource is ready.
 	PushSecretReady PushSecretConditionType = "Ready"
 	PushSecretReady PushSecretConditionType = "Ready"
 )
 )
 
 
@@ -203,6 +228,8 @@ type PushSecretStatusCondition struct {
 	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
 	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
 }
 }
 
 
+// SyncedPushSecretsMap is a map that tracks which PushSecretData was stored to which secret store.
+// The outer map's key is the secret store name, and the inner map's key is the remote key name.
 type SyncedPushSecretsMap map[string]map[string]PushSecretData
 type SyncedPushSecretsMap map[string]map[string]PushSecretData
 
 
 // PushSecretStatus indicates the history of the status of PushSecret.
 // PushSecretStatus indicates the history of the status of PushSecret.
@@ -224,13 +251,13 @@ type PushSecretStatus struct {
 
 
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
-// PushSecrets is the Schema for the PushSecrets API.
 // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
 // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
 // +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].reason`
 // +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].reason`
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:resource:scope=Namespaced,categories={external-secrets},shortName=ps
 // +kubebuilder:resource:scope=Namespaced,categories={external-secrets},shortName=ps
 
 
+// PushSecret is the Schema for the PushSecrets API that enables pushing Kubernetes secrets to external secret providers.
 type PushSecret struct {
 type PushSecret struct {
 	metav1.TypeMeta   `json:",inline"`
 	metav1.TypeMeta   `json:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
@@ -272,6 +299,7 @@ type PushSecretMetadata struct {
 	Labels map[string]string `json:"labels,omitempty"`
 	Labels map[string]string `json:"labels,omitempty"`
 }
 }
 
 
+// ClusterPushSecretSpec defines the configuration for a ClusterPushSecret resource.
 type ClusterPushSecretSpec struct {
 type ClusterPushSecretSpec struct {
 	// PushSecretSpec defines what to do with the secrets.
 	// PushSecretSpec defines what to do with the secrets.
 	PushSecretSpec PushSecretSpec `json:"pushSecretSpec"`
 	PushSecretSpec PushSecretSpec `json:"pushSecretSpec"`
@@ -305,6 +333,7 @@ type ClusterPushSecretNamespaceFailure struct {
 	Reason string `json:"reason,omitempty"`
 	Reason string `json:"reason,omitempty"`
 }
 }
 
 
+// ClusterPushSecretStatus contains the status information for the ClusterPushSecret resource.
 type ClusterPushSecretStatus struct {
 type ClusterPushSecretStatus struct {
 	// Failed namespaces are the namespaces that failed to apply an PushSecret
 	// Failed namespaces are the namespaces that failed to apply an PushSecret
 	// +optional
 	// +optional
@@ -321,13 +350,13 @@ type ClusterPushSecretStatus struct {
 
 
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
-// ClusterPushSecretCondition is the Schema for the PushSecrets API.
 // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
 // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
 // +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].reason`
 // +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].reason`
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:resource:scope=Cluster,categories={external-secrets}
 // +kubebuilder:resource:scope=Cluster,categories={external-secrets}
 
 
+// ClusterPushSecret is the Schema for the ClusterPushSecrets API that enables cluster-wide management of pushing Kubernetes secrets to external providers.
 type ClusterPushSecret struct {
 type ClusterPushSecret struct {
 	metav1.TypeMeta   `json:",inline"`
 	metav1.TypeMeta   `json:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`

+ 16 - 7
apis/externalsecrets/v1alpha1/register.go

@@ -35,20 +35,29 @@ var (
 
 
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
-	AddToScheme   = SchemeBuilder.AddToScheme
+	// AddToScheme adds the types in this group-version to the given scheme.
+	AddToScheme = SchemeBuilder.AddToScheme
 )
 )
 
 
 var (
 var (
-	PushSecretKind             = reflect.TypeOf(PushSecret{}).Name()
-	PushSecretGroupKind        = schema.GroupKind{Group: Group, Kind: PushSecretKind}.String()
-	PushSecretKindAPIVersion   = PushSecretKind + "." + SchemeGroupVersion.String()
+	// PushSecretKind is the kind name used for PushSecret resources.
+	PushSecretKind = reflect.TypeOf(PushSecret{}).Name()
+	// PushSecretGroupKind is the group/kind used for PushSecret resources.
+	PushSecretGroupKind = schema.GroupKind{Group: Group, Kind: PushSecretKind}.String()
+	// PushSecretKindAPIVersion is the kind/apiVersion used for PushSecret resources.
+	PushSecretKindAPIVersion = PushSecretKind + "." + SchemeGroupVersion.String()
+	// PushSecretGroupVersionKind is the GroupVersionKind for PushSecret resources.
 	PushSecretGroupVersionKind = SchemeGroupVersion.WithKind(PushSecretKind)
 	PushSecretGroupVersionKind = SchemeGroupVersion.WithKind(PushSecretKind)
 )
 )
 
 
 var (
 var (
-	ClusterPushSecretKind             = reflect.TypeOf(ClusterPushSecret{}).Name()
-	ClusterPushSecretGroupKind        = schema.GroupKind{Group: Group, Kind: ClusterPushSecretKind}.String()
-	ClusterPushSecretKindAPIVersion   = ClusterPushSecretKind + "." + SchemeGroupVersion.String()
+	// ClusterPushSecretKind is the kind name used for ClusterPushSecret resources.
+	ClusterPushSecretKind = reflect.TypeOf(ClusterPushSecret{}).Name()
+	// ClusterPushSecretGroupKind is the group/kind used for ClusterPushSecret resources.
+	ClusterPushSecretGroupKind = schema.GroupKind{Group: Group, Kind: ClusterPushSecretKind}.String()
+	// ClusterPushSecretKindAPIVersion is the kind/apiVersion used for ClusterPushSecret resources.
+	ClusterPushSecretKindAPIVersion = ClusterPushSecretKind + "." + SchemeGroupVersion.String()
+	// ClusterPushSecretGroupVersionKind is the GroupVersionKind for ClusterPushSecret resources.
 	ClusterPushSecretGroupVersionKind = SchemeGroupVersion.WithKind(ClusterPushSecretKind)
 	ClusterPushSecretGroupVersionKind = SchemeGroupVersion.WithKind(ClusterPushSecretKind)
 )
 )
 
 

+ 4 - 1
apis/externalsecrets/v1beta1/clusterexternalsecret_types.go

@@ -66,10 +66,13 @@ type ExternalSecretMetadata struct {
 	Labels map[string]string `json:"labels,omitempty"`
 	Labels map[string]string `json:"labels,omitempty"`
 }
 }
 
 
+// ClusterExternalSecretConditionType indicates the condition of the ClusterExternalSecret.
 type ClusterExternalSecretConditionType string
 type ClusterExternalSecretConditionType string
 
 
+// ClusterExternalSecretReady indicates the ClusterExternalSecret resource is ready.
 const ClusterExternalSecretReady ClusterExternalSecretConditionType = "Ready"
 const ClusterExternalSecretReady ClusterExternalSecretConditionType = "Ready"
 
 
+// ClusterExternalSecretStatusCondition indicates the status of the ClusterExternalSecret.
 type ClusterExternalSecretStatusCondition struct {
 type ClusterExternalSecretStatusCondition struct {
 	Type   ClusterExternalSecretConditionType `json:"type"`
 	Type   ClusterExternalSecretConditionType `json:"type"`
 	Status corev1.ConditionStatus             `json:"status"`
 	Status corev1.ConditionStatus             `json:"status"`
@@ -106,6 +109,7 @@ type ClusterExternalSecretStatus struct {
 	Conditions []ClusterExternalSecretStatusCondition `json:"conditions,omitempty"`
 	Conditions []ClusterExternalSecretStatusCondition `json:"conditions,omitempty"`
 }
 }
 
 
+// ClusterExternalSecret is the schema for the clusterexternalsecrets API.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:resource:scope=Cluster,categories={external-secrets},shortName=ces
 // +kubebuilder:resource:scope=Cluster,categories={external-secrets},shortName=ces
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
@@ -115,7 +119,6 @@ type ClusterExternalSecretStatus struct {
 // +kubebuilder:printcolumn:name="Store",type=string,JSONPath=`.spec.externalSecretSpec.secretStoreRef.name`
 // +kubebuilder:printcolumn:name="Store",type=string,JSONPath=`.spec.externalSecretSpec.secretStoreRef.name`
 // +kubebuilder:printcolumn:name="Refresh Interval",type=string,JSONPath=`.spec.refreshTime`
 // +kubebuilder:printcolumn:name="Refresh Interval",type=string,JSONPath=`.spec.refreshTime`
 // +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`
 // +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`
-// ClusterExternalSecret is the Schema for the clusterexternalsecrets API.
 type ClusterExternalSecret struct {
 type ClusterExternalSecret struct {
 	metav1.TypeMeta   `json:",inline"`
 	metav1.TypeMeta   `json:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`

+ 74 - 25
apis/externalsecrets/v1beta1/externalsecret_types.go

@@ -41,17 +41,17 @@ type SecretStoreRef struct {
 type ExternalSecretCreationPolicy string
 type ExternalSecretCreationPolicy string
 
 
 const (
 const (
-	// Owner creates the Secret and sets .metadata.ownerReferences to the ExternalSecret resource.
+	// CreatePolicyOwner creates the Secret and sets .metadata.ownerReferences to the ExternalSecret resource.
 	CreatePolicyOwner ExternalSecretCreationPolicy = "Owner"
 	CreatePolicyOwner ExternalSecretCreationPolicy = "Owner"
 
 
-	// Orphan creates the Secret and does not set the ownerReference.
+	// CreatePolicyOrphan creates the Secret and does not set the ownerReference.
 	// I.e. it will be orphaned after the deletion of the ExternalSecret.
 	// I.e. it will be orphaned after the deletion of the ExternalSecret.
 	CreatePolicyOrphan ExternalSecretCreationPolicy = "Orphan"
 	CreatePolicyOrphan ExternalSecretCreationPolicy = "Orphan"
 
 
-	// Merge does not create the Secret, but merges the data fields to the Secret.
+	// CreatePolicyMerge does not create the Secret, but merges the data fields to the Secret.
 	CreatePolicyMerge ExternalSecretCreationPolicy = "Merge"
 	CreatePolicyMerge ExternalSecretCreationPolicy = "Merge"
 
 
-	// None does not create a Secret (future use with injector).
+	// CreatePolicyNone does not create a Secret (future use with injector).
 	CreatePolicyNone ExternalSecretCreationPolicy = "None"
 	CreatePolicyNone ExternalSecretCreationPolicy = "None"
 )
 )
 
 
@@ -60,19 +60,19 @@ const (
 type ExternalSecretDeletionPolicy string
 type ExternalSecretDeletionPolicy string
 
 
 const (
 const (
-	// Delete deletes the secret if all provider secrets are deleted.
+	// DeletionPolicyDelete deletes the secret if all provider secrets are deleted.
 	// If a secret gets deleted on the provider side and is not accessible
 	// If a secret gets deleted on the provider side and is not accessible
 	// anymore this is not considered an error and the ExternalSecret
 	// anymore this is not considered an error and the ExternalSecret
 	// does not go into SecretSyncedError status.
 	// does not go into SecretSyncedError status.
 	DeletionPolicyDelete ExternalSecretDeletionPolicy = "Delete"
 	DeletionPolicyDelete ExternalSecretDeletionPolicy = "Delete"
 
 
-	// Merge removes keys in the secret, but not the secret itself.
+	// DeletionPolicyMerge removes keys in the secret, but not the secret itself.
 	// If a secret gets deleted on the provider side and is not accessible
 	// If a secret gets deleted on the provider side and is not accessible
 	// anymore this is not considered an error and the ExternalSecret
 	// anymore this is not considered an error and the ExternalSecret
 	// does not go into SecretSyncedError status.
 	// does not go into SecretSyncedError status.
 	DeletionPolicyMerge ExternalSecretDeletionPolicy = "Merge"
 	DeletionPolicyMerge ExternalSecretDeletionPolicy = "Merge"
 
 
-	// Retain will retain the secret if all provider secrets have been deleted.
+	// DeletionPolicyRetain will retain the secret if all provider secrets have been deleted.
 	// If a provider secret does not exist the ExternalSecret gets into the
 	// If a provider secret does not exist the ExternalSecret gets into the
 	// SecretSyncedError status.
 	// SecretSyncedError status.
 	DeletionPolicyRetain ExternalSecretDeletionPolicy = "Retain"
 	DeletionPolicyRetain ExternalSecretDeletionPolicy = "Retain"
@@ -112,21 +112,27 @@ type ExternalSecretTemplate struct {
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 }
 }
 
 
+// TemplateMergePolicy defines how template values should be merged when generating a secret.
 // +kubebuilder:validation:Enum=Replace;Merge
 // +kubebuilder:validation:Enum=Replace;Merge
 type TemplateMergePolicy string
 type TemplateMergePolicy string
 
 
 const (
 const (
+	// MergePolicyReplace replaces the entire template content during merge operations.
 	MergePolicyReplace TemplateMergePolicy = "Replace"
 	MergePolicyReplace TemplateMergePolicy = "Replace"
-	MergePolicyMerge   TemplateMergePolicy = "Merge"
+	// MergePolicyMerge merges the template content with existing values.
+	MergePolicyMerge TemplateMergePolicy = "Merge"
 )
 )
 
 
+// TemplateEngineVersion defines the version of the template engine to use.
 // +kubebuilder:validation:Enum=v2
 // +kubebuilder:validation:Enum=v2
 type TemplateEngineVersion string
 type TemplateEngineVersion string
 
 
 const (
 const (
+	// TemplateEngineV2 specifies the v2 template engine version.
 	TemplateEngineV2 TemplateEngineVersion = "v2"
 	TemplateEngineV2 TemplateEngineVersion = "v2"
 )
 )
 
 
+// TemplateFrom defines a source for template data.
 type TemplateFrom struct {
 type TemplateFrom struct {
 	ConfigMap *TemplateRef `json:"configMap,omitempty"`
 	ConfigMap *TemplateRef `json:"configMap,omitempty"`
 	Secret    *TemplateRef `json:"secret,omitempty"`
 	Secret    *TemplateRef `json:"secret,omitempty"`
@@ -139,23 +145,31 @@ type TemplateFrom struct {
 	Literal *string `json:"literal,omitempty"`
 	Literal *string `json:"literal,omitempty"`
 }
 }
 
 
+// TemplateScope defines the scope of the template when processing template data.
 // +kubebuilder:validation:Enum=Values;KeysAndValues
 // +kubebuilder:validation:Enum=Values;KeysAndValues
 type TemplateScope string
 type TemplateScope string
 
 
 const (
 const (
-	TemplateScopeValues        TemplateScope = "Values"
+	// TemplateScopeValues processes only the values of the data.
+	TemplateScopeValues TemplateScope = "Values"
+	// TemplateScopeKeysAndValues processes both keys and values of the data.
 	TemplateScopeKeysAndValues TemplateScope = "KeysAndValues"
 	TemplateScopeKeysAndValues TemplateScope = "KeysAndValues"
 )
 )
 
 
+// TemplateTarget defines the target field where the template result will be stored.
 // +kubebuilder:validation:Enum=Data;Annotations;Labels
 // +kubebuilder:validation:Enum=Data;Annotations;Labels
 type TemplateTarget string
 type TemplateTarget string
 
 
 const (
 const (
-	TemplateTargetData        TemplateTarget = "Data"
+	// TemplateTargetData stores template results in the data field of the secret.
+	TemplateTargetData TemplateTarget = "Data"
+	// TemplateTargetAnnotations stores template results in the annotations field of the secret.
 	TemplateTargetAnnotations TemplateTarget = "Annotations"
 	TemplateTargetAnnotations TemplateTarget = "Annotations"
-	TemplateTargetLabels      TemplateTarget = "Labels"
+	// TemplateTargetLabels stores template results in the labels field of the secret.
+	TemplateTargetLabels TemplateTarget = "Labels"
 )
 )
 
 
+// TemplateRef defines a reference to a template source in a ConfigMap or Secret.
 type TemplateRef struct {
 type TemplateRef struct {
 	// The name of the ConfigMap/Secret resource
 	// The name of the ConfigMap/Secret resource
 	// +kubebuilder:validation:MinLength:=1
 	// +kubebuilder:validation:MinLength:=1
@@ -167,6 +181,7 @@ type TemplateRef struct {
 	Items []TemplateRefItem `json:"items"`
 	Items []TemplateRefItem `json:"items"`
 }
 }
 
 
+// TemplateRefItem defines which key in the referenced ConfigMap or Secret to use as a template.
 type TemplateRefItem struct {
 type TemplateRefItem struct {
 	// A key in the ConfigMap/Secret
 	// A key in the ConfigMap/Secret
 	// +kubebuilder:validation:MinLength:=1
 	// +kubebuilder:validation:MinLength:=1
@@ -256,32 +271,44 @@ type ExternalSecretDataRemoteRef struct {
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 }
 }
 
 
+// ExternalSecretMetadataPolicy defines the policy for fetching tags/labels from provider secrets.
 // +kubebuilder:validation:Enum=None;Fetch
 // +kubebuilder:validation:Enum=None;Fetch
 type ExternalSecretMetadataPolicy string
 type ExternalSecretMetadataPolicy string
 
 
 const (
 const (
-	ExternalSecretMetadataPolicyNone  ExternalSecretMetadataPolicy = "None"
+	// ExternalSecretMetadataPolicyNone indicates that no metadata will be fetched.
+	ExternalSecretMetadataPolicyNone ExternalSecretMetadataPolicy = "None"
+	// ExternalSecretMetadataPolicyFetch indicates that metadata will be fetched from the provider.
 	ExternalSecretMetadataPolicyFetch ExternalSecretMetadataPolicy = "Fetch"
 	ExternalSecretMetadataPolicyFetch ExternalSecretMetadataPolicy = "Fetch"
 )
 )
 
 
+// ExternalSecretConversionStrategy defines how secret values are converted.
 // +kubebuilder:validation:Enum=Default;Unicode
 // +kubebuilder:validation:Enum=Default;Unicode
 type ExternalSecretConversionStrategy string
 type ExternalSecretConversionStrategy string
 
 
 const (
 const (
+	// ExternalSecretConversionDefault indicates the default conversion strategy.
 	ExternalSecretConversionDefault ExternalSecretConversionStrategy = "Default"
 	ExternalSecretConversionDefault ExternalSecretConversionStrategy = "Default"
+	// ExternalSecretConversionUnicode indicates that unicode conversion will be performed.
 	ExternalSecretConversionUnicode ExternalSecretConversionStrategy = "Unicode"
 	ExternalSecretConversionUnicode ExternalSecretConversionStrategy = "Unicode"
 )
 )
 
 
+// ExternalSecretDecodingStrategy defines how secret values are decoded.
 // +kubebuilder:validation:Enum=Auto;Base64;Base64URL;None
 // +kubebuilder:validation:Enum=Auto;Base64;Base64URL;None
 type ExternalSecretDecodingStrategy string
 type ExternalSecretDecodingStrategy string
 
 
 const (
 const (
-	ExternalSecretDecodeAuto      ExternalSecretDecodingStrategy = "Auto"
-	ExternalSecretDecodeBase64    ExternalSecretDecodingStrategy = "Base64"
+	// ExternalSecretDecodeAuto indicates that the decoding strategy will be automatically determined.
+	ExternalSecretDecodeAuto ExternalSecretDecodingStrategy = "Auto"
+	// ExternalSecretDecodeBase64 indicates that base64 decoding will be used.
+	ExternalSecretDecodeBase64 ExternalSecretDecodingStrategy = "Base64"
+	// ExternalSecretDecodeBase64URL indicates that base64url decoding will be used.
 	ExternalSecretDecodeBase64URL ExternalSecretDecodingStrategy = "Base64URL"
 	ExternalSecretDecodeBase64URL ExternalSecretDecodingStrategy = "Base64URL"
-	ExternalSecretDecodeNone      ExternalSecretDecodingStrategy = "None"
+	// ExternalSecretDecodeNone indicates that no decoding will be performed.
+	ExternalSecretDecodeNone ExternalSecretDecodingStrategy = "None"
 )
 )
 
 
+// ExternalSecretDataFromRemoteRef defines a reference to multiple secrets in the provider to be fetched using options.
 type ExternalSecretDataFromRemoteRef struct {
 type ExternalSecretDataFromRemoteRef struct {
 	// Used to extract multiple key/value pairs from one secret
 	// Used to extract multiple key/value pairs from one secret
 	// Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
 	// Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
@@ -306,6 +333,7 @@ type ExternalSecretDataFromRemoteRef struct {
 	SourceRef *StoreGeneratorSourceRef `json:"sourceRef,omitempty"`
 	SourceRef *StoreGeneratorSourceRef `json:"sourceRef,omitempty"`
 }
 }
 
 
+// ExternalSecretRewrite defines rules on how to rewrite secret keys.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type ExternalSecretRewrite struct {
 type ExternalSecretRewrite struct {
@@ -320,6 +348,7 @@ type ExternalSecretRewrite struct {
 	Transform *ExternalSecretRewriteTransform `json:"transform,omitempty"`
 	Transform *ExternalSecretRewriteTransform `json:"transform,omitempty"`
 }
 }
 
 
+// ExternalSecretRewriteRegexp defines how to use regular expressions for rewriting secret keys.
 type ExternalSecretRewriteRegexp struct {
 type ExternalSecretRewriteRegexp struct {
 	// Used to define the regular expression of a re.Compiler.
 	// Used to define the regular expression of a re.Compiler.
 	Source string `json:"source"`
 	Source string `json:"source"`
@@ -327,12 +356,14 @@ type ExternalSecretRewriteRegexp struct {
 	Target string `json:"target"`
 	Target string `json:"target"`
 }
 }
 
 
+// ExternalSecretRewriteTransform defines how to use string templates for transforming secret keys.
 type ExternalSecretRewriteTransform struct {
 type ExternalSecretRewriteTransform struct {
 	// Used to define the template to apply on the secret name.
 	// Used to define the template to apply on the secret name.
 	// `.value ` will specify the secret name in the template.
 	// `.value ` will specify the secret name in the template.
 	Template string `json:"template"`
 	Template string `json:"template"`
 }
 }
 
 
+// ExternalSecretFind defines criteria for finding secrets in the provider.
 type ExternalSecretFind struct {
 type ExternalSecretFind struct {
 	// A root path to start the find operations.
 	// A root path to start the find operations.
 	// +optional
 	// +optional
@@ -357,19 +388,24 @@ type ExternalSecretFind struct {
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 }
 }
 
 
+// FindName defines name matching criteria for finding secrets.
 type FindName struct {
 type FindName struct {
 	// Finds secrets base
 	// Finds secrets base
 	// +optional
 	// +optional
 	RegExp string `json:"regexp,omitempty"`
 	RegExp string `json:"regexp,omitempty"`
 }
 }
 
 
+// ExternalSecretRefreshPolicy defines how and when the ExternalSecret should be refreshed.
 // +kubebuilder:validation:Enum=CreatedOnce;Periodic;OnChange
 // +kubebuilder:validation:Enum=CreatedOnce;Periodic;OnChange
 type ExternalSecretRefreshPolicy string
 type ExternalSecretRefreshPolicy string
 
 
 const (
 const (
+	// RefreshPolicyCreatedOnce creates the Secret only if it does not exist and does not update it thereafter.
 	RefreshPolicyCreatedOnce ExternalSecretRefreshPolicy = "CreatedOnce"
 	RefreshPolicyCreatedOnce ExternalSecretRefreshPolicy = "CreatedOnce"
-	RefreshPolicyPeriodic    ExternalSecretRefreshPolicy = "Periodic"
-	RefreshPolicyOnChange    ExternalSecretRefreshPolicy = "OnChange"
+	// RefreshPolicyPeriodic synchronizes the Secret from the external source at regular intervals.
+	RefreshPolicyPeriodic ExternalSecretRefreshPolicy = "Periodic"
+	// RefreshPolicyOnChange only synchronizes the Secret when the ExternalSecret's metadata or specification changes.
+	RefreshPolicyOnChange ExternalSecretRefreshPolicy = "OnChange"
 )
 )
 
 
 // ExternalSecretSpec defines the desired state of ExternalSecret.
 // ExternalSecretSpec defines the desired state of ExternalSecret.
@@ -454,13 +490,17 @@ type GeneratorRef struct {
 	Name string `json:"name"`
 	Name string `json:"name"`
 }
 }
 
 
+// ExternalSecretConditionType defines the condition type for an ExternalSecret.
 type ExternalSecretConditionType string
 type ExternalSecretConditionType string
 
 
 const (
 const (
-	ExternalSecretReady   ExternalSecretConditionType = "Ready"
+	// ExternalSecretReady indicates the ExternalSecret has been successfully reconciled.
+	ExternalSecretReady ExternalSecretConditionType = "Ready"
+	// ExternalSecretDeleted indicates the ExternalSecret has been deleted.
 	ExternalSecretDeleted ExternalSecretConditionType = "Deleted"
 	ExternalSecretDeleted ExternalSecretConditionType = "Deleted"
 )
 )
 
 
+// ExternalSecretStatusCondition contains condition information for an ExternalSecret.
 type ExternalSecretStatusCondition struct {
 type ExternalSecretStatusCondition struct {
 	Type   ExternalSecretConditionType `json:"type"`
 	Type   ExternalSecretConditionType `json:"type"`
 	Status corev1.ConditionStatus      `json:"status"`
 	Status corev1.ConditionStatus      `json:"status"`
@@ -485,14 +525,21 @@ const (
 	// ConditionReasonSecretMissing indicates that the secret is missing.
 	// ConditionReasonSecretMissing indicates that the secret is missing.
 	ConditionReasonSecretMissing = "SecretMissing"
 	ConditionReasonSecretMissing = "SecretMissing"
 
 
-	ReasonUpdateFailed          = "UpdateFailed"
-	ReasonDeprecated            = "ParameterDeprecated"
-	ReasonCreated               = "Created"
-	ReasonUpdated               = "Updated"
-	ReasonDeleted               = "Deleted"
+	// ReasonUpdateFailed indicates that the update operation failed.
+	ReasonUpdateFailed = "UpdateFailed"
+	// ReasonDeprecated indicates that a deprecated parameter was used.
+	ReasonDeprecated = "ParameterDeprecated"
+	// ReasonCreated indicates that a resource was created.
+	ReasonCreated = "Created"
+	// ReasonUpdated indicates that a resource was updated.
+	ReasonUpdated = "Updated"
+	// ReasonDeleted indicates that a resource was deleted.
+	ReasonDeleted = "Deleted"
+	// ReasonMissingProviderSecret indicates that a provider secret is missing.
 	ReasonMissingProviderSecret = "MissingProviderSecret"
 	ReasonMissingProviderSecret = "MissingProviderSecret"
 )
 )
 
 
+// ExternalSecretStatus defines the observed state of ExternalSecret.
 type ExternalSecretStatus struct {
 type ExternalSecretStatus struct {
 	// +nullable
 	// +nullable
 	// refreshTime is the time and date the external secret was fetched and
 	// refreshTime is the time and date the external secret was fetched and
@@ -509,8 +556,8 @@ type ExternalSecretStatus struct {
 	Binding corev1.LocalObjectReference `json:"binding,omitempty"`
 	Binding corev1.LocalObjectReference `json:"binding,omitempty"`
 }
 }
 
 
+// ExternalSecret is the schema for the external-secrets API.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
-// ExternalSecret is the Schema for the external-secrets API.
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
 // +kubebuilder:unservedversion
 // +kubebuilder:unservedversion
 // +kubebuilder:deprecatedversion
 // +kubebuilder:deprecatedversion
@@ -534,7 +581,9 @@ const (
 	AnnotationDataHash = "reconcile.external-secrets.io/data-hash"
 	AnnotationDataHash = "reconcile.external-secrets.io/data-hash"
 
 
 	// LabelManaged all secrets managed by an ExternalSecret will have this label equal to "true".
 	// LabelManaged all secrets managed by an ExternalSecret will have this label equal to "true".
-	LabelManaged      = "reconcile.external-secrets.io/managed"
+	LabelManaged = "reconcile.external-secrets.io/managed"
+
+	// LabelManagedValue is the value for the LabelManaged key, indicating a secret is managed by ESO.
 	LabelManagedValue = "true"
 	LabelManagedValue = "true"
 
 
 	// LabelOwner points to the owning ExternalSecret resource when CreationPolicy=Owner.
 	// LabelOwner points to the owning ExternalSecret resource when CreationPolicy=Owner.

+ 4 - 0
apis/externalsecrets/v1beta1/externalsecret_validator.go

@@ -25,16 +25,20 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 	"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
 )
 )
 
 
+// ExternalSecretValidator implements webhook validation for ExternalSecret resources.
 type ExternalSecretValidator struct{}
 type ExternalSecretValidator struct{}
 
 
+// ValidateCreate validates an ExternalSecret during creation.
 func (esv *ExternalSecretValidator) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error) {
 func (esv *ExternalSecretValidator) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error) {
 	return validateExternalSecret(obj)
 	return validateExternalSecret(obj)
 }
 }
 
 
+// ValidateUpdate validates an ExternalSecret during update.
 func (esv *ExternalSecretValidator) ValidateUpdate(_ context.Context, _, newObj runtime.Object) (admission.Warnings, error) {
 func (esv *ExternalSecretValidator) ValidateUpdate(_ context.Context, _, newObj runtime.Object) (admission.Warnings, error) {
 	return validateExternalSecret(newObj)
 	return validateExternalSecret(newObj)
 }
 }
 
 
+// ValidateDelete validates an ExternalSecret during deletion.
 func (esv *ExternalSecretValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
 func (esv *ExternalSecretValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
 	return nil, nil
 	return nil, nil
 }
 }

+ 1 - 0
apis/externalsecrets/v1beta1/externalsecret_webhook.go

@@ -20,6 +20,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 )
 )
 
 
+// SetupWebhookWithManager registers the ExternalSecret webhook with the controller manager.
 func (es *ExternalSecret) SetupWebhookWithManager(mgr ctrl.Manager) error {
 func (es *ExternalSecret) SetupWebhookWithManager(mgr ctrl.Manager) error {
 	return ctrl.NewWebhookManagedBy(mgr).
 	return ctrl.NewWebhookManagedBy(mgr).
 		For(es).
 		For(es).

+ 9 - 0
apis/externalsecrets/v1beta1/fakes/pushremoteref.go

@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 */
 */
 
 
+// Package fakes contains fake implementations for testing purposes.
 package fakes
 package fakes
 
 
 import (
 import (
@@ -22,6 +23,7 @@ import (
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 )
 )
 
 
+// PushRemoteRef is a fake implementation of the PushRemoteRef interface for testing.
 type PushRemoteRef struct {
 type PushRemoteRef struct {
 	GetRemoteKeyStub        func() string
 	GetRemoteKeyStub        func() string
 	getRemoteKeyMutex       sync.RWMutex
 	getRemoteKeyMutex       sync.RWMutex
@@ -37,6 +39,7 @@ type PushRemoteRef struct {
 	invocationsMutex sync.RWMutex
 	invocationsMutex sync.RWMutex
 }
 }
 
 
+// GetRemoteKey returns a string representing the remote key.
 func (fake *PushRemoteRef) GetRemoteKey() string {
 func (fake *PushRemoteRef) GetRemoteKey() string {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	ret, specificReturn := fake.getRemoteKeyReturnsOnCall[len(fake.getRemoteKeyArgsForCall)]
 	ret, specificReturn := fake.getRemoteKeyReturnsOnCall[len(fake.getRemoteKeyArgsForCall)]
@@ -55,22 +58,26 @@ func (fake *PushRemoteRef) GetRemoteKey() string {
 	return fakeReturns.result1
 	return fakeReturns.result1
 }
 }
 
 
+// GetProperty returns the property value as a string.
 func (fake *PushRemoteRef) GetProperty() string {
 func (fake *PushRemoteRef) GetProperty() string {
 	return ""
 	return ""
 }
 }
 
 
+// GetRemoteKeyCallCount returns the number of times GetRemoteKey has been called.
 func (fake *PushRemoteRef) GetRemoteKeyCallCount() int {
 func (fake *PushRemoteRef) GetRemoteKeyCallCount() int {
 	fake.getRemoteKeyMutex.RLock()
 	fake.getRemoteKeyMutex.RLock()
 	defer fake.getRemoteKeyMutex.RUnlock()
 	defer fake.getRemoteKeyMutex.RUnlock()
 	return len(fake.getRemoteKeyArgsForCall)
 	return len(fake.getRemoteKeyArgsForCall)
 }
 }
 
 
+// GetRemoteKeyCalls sets a custom stub function for the GetRemoteKey method.
 func (fake *PushRemoteRef) GetRemoteKeyCalls(stub func() string) {
 func (fake *PushRemoteRef) GetRemoteKeyCalls(stub func() string) {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	fake.GetRemoteKeyStub = stub
 	fake.GetRemoteKeyStub = stub
 }
 }
 
 
+// GetRemoteKeyReturns sets return values that will be returned by GetRemoteKey.
 func (fake *PushRemoteRef) GetRemoteKeyReturns(result1 string) {
 func (fake *PushRemoteRef) GetRemoteKeyReturns(result1 string) {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	defer fake.getRemoteKeyMutex.Unlock()
@@ -80,6 +87,7 @@ func (fake *PushRemoteRef) GetRemoteKeyReturns(result1 string) {
 	}{result1}
 	}{result1}
 }
 }
 
 
+// GetRemoteKeyReturnsOnCall sets return values for specific calls to GetRemoteKey.
 func (fake *PushRemoteRef) GetRemoteKeyReturnsOnCall(i int, result1 string) {
 func (fake *PushRemoteRef) GetRemoteKeyReturnsOnCall(i int, result1 string) {
 	fake.getRemoteKeyMutex.Lock()
 	fake.getRemoteKeyMutex.Lock()
 	defer fake.getRemoteKeyMutex.Unlock()
 	defer fake.getRemoteKeyMutex.Unlock()
@@ -94,6 +102,7 @@ func (fake *PushRemoteRef) GetRemoteKeyReturnsOnCall(i int, result1 string) {
 	}{result1}
 	}{result1}
 }
 }
 
 
+// Invocations returns a map recording the calls to methods on this fake.
 func (fake *PushRemoteRef) Invocations() map[string][][]any {
 func (fake *PushRemoteRef) Invocations() map[string][][]any {
 	fake.invocationsMutex.RLock()
 	fake.invocationsMutex.RLock()
 	defer fake.invocationsMutex.RUnlock()
 	defer fake.invocationsMutex.RUnlock()

+ 16 - 0
apis/externalsecrets/v1beta1/generic_store.go

@@ -49,34 +49,42 @@ type GenericStore interface {
 // +kubebuilder:object:generate:false
 // +kubebuilder:object:generate:false
 var _ GenericStore = &SecretStore{}
 var _ GenericStore = &SecretStore{}
 
 
+// GetObjectMeta returns the ObjectMeta of the SecretStore.
 func (c *SecretStore) GetObjectMeta() *metav1.ObjectMeta {
 func (c *SecretStore) GetObjectMeta() *metav1.ObjectMeta {
 	return &c.ObjectMeta
 	return &c.ObjectMeta
 }
 }
 
 
+// GetTypeMeta returns the TypeMeta of the SecretStore.
 func (c *SecretStore) GetTypeMeta() *metav1.TypeMeta {
 func (c *SecretStore) GetTypeMeta() *metav1.TypeMeta {
 	return &c.TypeMeta
 	return &c.TypeMeta
 }
 }
 
 
+// GetSpec returns the spec of the SecretStore.
 func (c *SecretStore) GetSpec() *SecretStoreSpec {
 func (c *SecretStore) GetSpec() *SecretStoreSpec {
 	return &c.Spec
 	return &c.Spec
 }
 }
 
 
+// GetStatus returns the status of the SecretStore.
 func (c *SecretStore) GetStatus() SecretStoreStatus {
 func (c *SecretStore) GetStatus() SecretStoreStatus {
 	return c.Status
 	return c.Status
 }
 }
 
 
+// SetStatus sets the status of the SecretStore.
 func (c *SecretStore) SetStatus(status SecretStoreStatus) {
 func (c *SecretStore) SetStatus(status SecretStoreStatus) {
 	c.Status = status
 	c.Status = status
 }
 }
 
 
+// GetNamespacedName returns the namespaced name of the SecretStore.
 func (c *SecretStore) GetNamespacedName() string {
 func (c *SecretStore) GetNamespacedName() string {
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 }
 }
 
 
+// GetKind returns the kind of the SecretStore.
 func (c *SecretStore) GetKind() string {
 func (c *SecretStore) GetKind() string {
 	return SecretStoreKind
 	return SecretStoreKind
 }
 }
 
 
+// Copy returns a deep copy of the SecretStore.
 func (c *SecretStore) Copy() GenericStore {
 func (c *SecretStore) Copy() GenericStore {
 	return c.DeepCopy()
 	return c.DeepCopy()
 }
 }
@@ -85,34 +93,42 @@ func (c *SecretStore) Copy() GenericStore {
 // +kubebuilder:object:generate:false
 // +kubebuilder:object:generate:false
 var _ GenericStore = &ClusterSecretStore{}
 var _ GenericStore = &ClusterSecretStore{}
 
 
+// GetObjectMeta returns the ObjectMeta of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetObjectMeta() *metav1.ObjectMeta {
 func (c *ClusterSecretStore) GetObjectMeta() *metav1.ObjectMeta {
 	return &c.ObjectMeta
 	return &c.ObjectMeta
 }
 }
 
 
+// GetTypeMeta returns the TypeMeta of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetTypeMeta() *metav1.TypeMeta {
 func (c *ClusterSecretStore) GetTypeMeta() *metav1.TypeMeta {
 	return &c.TypeMeta
 	return &c.TypeMeta
 }
 }
 
 
+// GetSpec returns the spec of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetSpec() *SecretStoreSpec {
 func (c *ClusterSecretStore) GetSpec() *SecretStoreSpec {
 	return &c.Spec
 	return &c.Spec
 }
 }
 
 
+// Copy returns a deep copy of the ClusterSecretStore.
 func (c *ClusterSecretStore) Copy() GenericStore {
 func (c *ClusterSecretStore) Copy() GenericStore {
 	return c.DeepCopy()
 	return c.DeepCopy()
 }
 }
 
 
+// GetStatus returns the status of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetStatus() SecretStoreStatus {
 func (c *ClusterSecretStore) GetStatus() SecretStoreStatus {
 	return c.Status
 	return c.Status
 }
 }
 
 
+// SetStatus sets the status of the ClusterSecretStore.
 func (c *ClusterSecretStore) SetStatus(status SecretStoreStatus) {
 func (c *ClusterSecretStore) SetStatus(status SecretStoreStatus) {
 	c.Status = status
 	c.Status = status
 }
 }
 
 
+// GetNamespacedName returns the namespaced name of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetNamespacedName() string {
 func (c *ClusterSecretStore) GetNamespacedName() string {
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 	return fmt.Sprintf("%s/%s", c.Namespace, c.Name)
 }
 }
 
 
+// GetKind returns the kind of the ClusterSecretStore.
 func (c *ClusterSecretStore) GetKind() string {
 func (c *ClusterSecretStore) GetKind() string {
 	return ClusterSecretStoreKind
 	return ClusterSecretStoreKind
 }
 }

+ 6 - 5
apis/externalsecrets/v1beta1/provider.go

@@ -25,18 +25,17 @@ import (
 )
 )
 
 
 const (
 const (
-	// Ready indicates that the client is configured correctly
-	// and can be used.
+	// ValidationResultReady indicates that the client is configured correctly and can be used.
 	ValidationResultReady ValidationResult = iota
 	ValidationResultReady ValidationResult = iota
 
 
-	// Unknown indicates that the client can be used
-	// but information is missing and it can not be validated.
+	// ValidationResultUnknown indicates that the client can be used but information is missing and it can not be validated.
 	ValidationResultUnknown
 	ValidationResultUnknown
 
 
-	// Error indicates that there is a misconfiguration.
+	// ValidationResultError indicates that there is a misconfiguration.
 	ValidationResultError
 	ValidationResultError
 )
 )
 
 
+// ValidationResult represents the result of validating a provider client configuration.
 type ValidationResult uint8
 type ValidationResult uint8
 
 
 func (v ValidationResult) String() string {
 func (v ValidationResult) String() string {
@@ -98,6 +97,7 @@ type SecretsClient interface {
 	Close(ctx context.Context) error
 	Close(ctx context.Context) error
 }
 }
 
 
+// NoSecretErr is an instance of NoSecretError used to indicate that a secret doesn't exist.
 var NoSecretErr = NoSecretError{}
 var NoSecretErr = NoSecretError{}
 
 
 // NoSecretError shall be returned when a GetSecret can not find the
 // NoSecretError shall be returned when a GetSecret can not find the
@@ -108,6 +108,7 @@ func (NoSecretError) Error() string {
 	return "Secret does not exist"
 	return "Secret does not exist"
 }
 }
 
 
+// NotModifiedErr is an instance of NotModifiedError used to signal that no changes were made.
 var NotModifiedErr = NotModifiedError{}
 var NotModifiedErr = NotModifiedError{}
 
 
 // NotModifiedError to signal that the webhook received no changes,
 // NotModifiedError to signal that the webhook received no changes,

+ 3 - 1
apis/externalsecrets/v1beta1/register.go

@@ -35,7 +35,9 @@ var (
 
 
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
-	AddToScheme   = SchemeBuilder.AddToScheme
+
+	// AddToScheme adds the types in this group-version to the given scheme.
+	AddToScheme = SchemeBuilder.AddToScheme
 )
 )
 
 
 // ExternalSecret type metadata.
 // ExternalSecret type metadata.

+ 2 - 0
apis/externalsecrets/v1beta1/secretsstore_delinea_types.go

@@ -18,6 +18,7 @@ package v1beta1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// DelineaProviderSecretRef defines a reference to a secret containing credentials for the Delinea provider.
 type DelineaProviderSecretRef struct {
 type DelineaProviderSecretRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,6 +30,7 @@ type DelineaProviderSecretRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
+// DelineaProvider defines configuration for the Delinea DevOps Secrets Vault provider.
 // See https://github.com/DelineaXPM/dsv-sdk-go/blob/main/vault/vault.go.
 // See https://github.com/DelineaXPM/dsv-sdk-go/blob/main/vault/vault.go.
 type DelineaProvider struct {
 type DelineaProvider struct {
 
 

+ 3 - 0
apis/externalsecrets/v1beta1/secretsstore_infisical_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// UniversalAuthCredentials defines the credentials for Infisical Universal Auth.
 type UniversalAuthCredentials struct {
 type UniversalAuthCredentials struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	ClientID esmeta.SecretKeySelector `json:"clientId"`
 	ClientID esmeta.SecretKeySelector `json:"clientId"`
@@ -27,11 +28,13 @@ type UniversalAuthCredentials struct {
 	ClientSecret esmeta.SecretKeySelector `json:"clientSecret"`
 	ClientSecret esmeta.SecretKeySelector `json:"clientSecret"`
 }
 }
 
 
+// InfisicalAuth defines the authentication methods for the Infisical provider.
 type InfisicalAuth struct {
 type InfisicalAuth struct {
 	// +optional
 	// +optional
 	UniversalAuthCredentials *UniversalAuthCredentials `json:"universalAuthCredentials,omitempty"`
 	UniversalAuthCredentials *UniversalAuthCredentials `json:"universalAuthCredentials,omitempty"`
 }
 }
 
 
+// MachineIdentityScopeInWorkspace defines the scope of a machine identity in an Infisical workspace.
 type MachineIdentityScopeInWorkspace struct {
 type MachineIdentityScopeInWorkspace struct {
 	// SecretsPath specifies the path to the secrets within the workspace. Defaults to "/" if not provided.
 	// SecretsPath specifies the path to the secrets within the workspace. Defaults to "/" if not provided.
 	// +kubebuilder:default="/"
 	// +kubebuilder:default="/"

+ 5 - 2
apis/externalsecrets/v1beta1/secretsstore_passbolt_types.go

@@ -20,12 +20,15 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Passbolt contains a secretRef for the passbolt credentials.
+// PassboltAuth contains credentials and configuration for authenticating with the Passbolt server.
 type PassboltAuth struct {
 type PassboltAuth struct {
-	PasswordSecretRef   *esmeta.SecretKeySelector `json:"passwordSecretRef"`
+	// PasswordSecretRef is a reference to the secret containing the Passbolt password
+	PasswordSecretRef *esmeta.SecretKeySelector `json:"passwordSecretRef"`
+	// PrivateKeySecretRef is a reference to the secret containing the Passbolt private key
 	PrivateKeySecretRef *esmeta.SecretKeySelector `json:"privateKeySecretRef"`
 	PrivateKeySecretRef *esmeta.SecretKeySelector `json:"privateKeySecretRef"`
 }
 }
 
 
+// PassboltProvider defines configuration for the Passbolt provider.
 type PassboltProvider struct {
 type PassboltProvider struct {
 	// Auth defines the information necessary to authenticate against Passbolt Server
 	// Auth defines the information necessary to authenticate against Passbolt Server
 	Auth *PassboltAuth `json:"auth"`
 	Auth *PassboltAuth `json:"auth"`

+ 2 - 0
apis/externalsecrets/v1beta1/secretsstore_secretserver_types.go

@@ -18,6 +18,7 @@ package v1beta1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// SecretServerProviderRef defines a reference to a secret containing credentials for the Secret Server provider.
 type SecretServerProviderRef struct {
 type SecretServerProviderRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,6 +30,7 @@ type SecretServerProviderRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
+// SecretServerProvider defines configuration for the Delinea Secret Server provider.
 // See https://github.com/DelineaXPM/tss-sdk-go/blob/main/server/server.go.
 // See https://github.com/DelineaXPM/tss-sdk-go/blob/main/server/server.go.
 type SecretServerProvider struct {
 type SecretServerProvider struct {
 
 

+ 3 - 2
apis/externalsecrets/v1beta1/secretstore_akeyless_types.go

@@ -40,6 +40,7 @@ type AkeylessProvider struct {
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 }
 }
 
 
+// AkeylessAuth defines methods of authentication with Akeyless Vault.
 type AkeylessAuth struct {
 type AkeylessAuth struct {
 
 
 	// Reference to a Secret that contains the details
 	// Reference to a Secret that contains the details
@@ -53,7 +54,7 @@ type AkeylessAuth struct {
 	KubernetesAuth *AkeylessKubernetesAuth `json:"kubernetesAuth,omitempty"`
 	KubernetesAuth *AkeylessKubernetesAuth `json:"kubernetesAuth,omitempty"`
 }
 }
 
 
-// AkeylessAuthSecretRef
+// AkeylessAuthSecretRef defines how to authenticate using a secret reference.
 // AKEYLESS_ACCESS_TYPE_PARAM: AZURE_OBJ_ID OR GCP_AUDIENCE OR ACCESS_KEY OR KUB_CONFIG_NAME.
 // AKEYLESS_ACCESS_TYPE_PARAM: AZURE_OBJ_ID OR GCP_AUDIENCE OR ACCESS_KEY OR KUB_CONFIG_NAME.
 type AkeylessAuthSecretRef struct {
 type AkeylessAuthSecretRef struct {
 	// The SecretAccessID is used for authentication
 	// The SecretAccessID is used for authentication
@@ -62,7 +63,7 @@ type AkeylessAuthSecretRef struct {
 	AccessTypeParam esmeta.SecretKeySelector `json:"accessTypeParam,omitempty"`
 	AccessTypeParam esmeta.SecretKeySelector `json:"accessTypeParam,omitempty"`
 }
 }
 
 
-// Authenticate with Kubernetes ServiceAccount token stored.
+// AkeylessKubernetesAuth authenticates with Akeyless using a Kubernetes ServiceAccount token.
 type AkeylessKubernetesAuth struct {
 type AkeylessKubernetesAuth struct {
 
 
 	// the Akeyless Kubernetes auth-method access-id
 	// the Akeyless Kubernetes auth-method access-id

+ 1 - 1
apis/externalsecrets/v1beta1/secretstore_alibaba_types.go

@@ -36,7 +36,7 @@ type AlibabaAuthSecretRef struct {
 	AccessKeySecret esmeta.SecretKeySelector `json:"accessKeySecretSecretRef"`
 	AccessKeySecret esmeta.SecretKeySelector `json:"accessKeySecretSecretRef"`
 }
 }
 
 
-// Authenticate against Alibaba using RRSA.
+// AlibabaRRSAAuth authenticates against Alibaba using RRSA (Resource-oriented RAM-based Service Authentication).
 type AlibabaRRSAAuth struct {
 type AlibabaRRSAAuth struct {
 	OIDCProviderARN   string `json:"oidcProviderArn"`
 	OIDCProviderARN   string `json:"oidcProviderArn"`
 	OIDCTokenFilePath string `json:"oidcTokenFilePath"`
 	OIDCTokenFilePath string `json:"oidcTokenFilePath"`

+ 3 - 2
apis/externalsecrets/v1beta1/secretstore_aws_types.go

@@ -46,12 +46,12 @@ type AWSAuthSecretRef struct {
 	SessionToken *esmeta.SecretKeySelector `json:"sessionTokenSecretRef,omitempty"`
 	SessionToken *esmeta.SecretKeySelector `json:"sessionTokenSecretRef,omitempty"`
 }
 }
 
 
-// Authenticate against AWS using service account tokens.
+// AWSJWTAuth authenticates against AWS using service account tokens from the Kubernetes cluster.
 type AWSJWTAuth struct {
 type AWSJWTAuth struct {
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 }
 }
 
 
-// AWSServiceType is a enum that defines the service/API that is used to fetch the secrets.
+// AWSServiceType is an enum that defines the service/API that is used to fetch the secrets.
 // +kubebuilder:validation:Enum=SecretsManager;ParameterStore
 // +kubebuilder:validation:Enum=SecretsManager;ParameterStore
 type AWSServiceType string
 type AWSServiceType string
 
 
@@ -85,6 +85,7 @@ type SecretsManager struct {
 	RecoveryWindowInDays int64 `json:"recoveryWindowInDays,omitempty"`
 	RecoveryWindowInDays int64 `json:"recoveryWindowInDays,omitempty"`
 }
 }
 
 
+// Tag defines a tag key and value for AWS resources.
 type Tag struct {
 type Tag struct {
 	Key   string `json:"key"`
 	Key   string `json:"key"`
 	Value string `json:"value"`
 	Value string `json:"value"`

+ 13 - 9
apis/externalsecrets/v1beta1/secretstore_azurekv_types.go

@@ -18,7 +18,7 @@ package v1beta1
 
 
 import smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
-// AuthType describes how to authenticate to the Azure Keyvault
+// AzureAuthType describes how to authenticate to the Azure Keyvault.
 // Only one of the following auth types may be specified.
 // Only one of the following auth types may be specified.
 // If none of the following auth type is specified, the default one
 // If none of the following auth type is specified, the default one
 // is ServicePrincipal.
 // is ServicePrincipal.
@@ -26,13 +26,13 @@ import smmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 type AzureAuthType string
 type AzureAuthType string
 
 
 const (
 const (
-	// Using service principal to authenticate, which needs a tenantId, a clientId and a clientSecret.
+	// AzureServicePrincipal uses service principal to authenticate, which needs a tenantId, a clientId and a clientSecret.
 	AzureServicePrincipal AzureAuthType = "ServicePrincipal"
 	AzureServicePrincipal AzureAuthType = "ServicePrincipal"
 
 
-	// Using Managed Identity to authenticate. Used with aad-pod-identity installed in the cluster.
+	// AzureManagedIdentity uses Managed Identity to authenticate. Used with aad-pod-identity installed in the cluster.
 	AzureManagedIdentity AzureAuthType = "ManagedIdentity"
 	AzureManagedIdentity AzureAuthType = "ManagedIdentity"
 
 
-	// Using Workload Identity service accounts to authenticate.
+	// AzureWorkloadIdentity uses Workload Identity service accounts to authenticate.
 	AzureWorkloadIdentity AzureAuthType = "WorkloadIdentity"
 	AzureWorkloadIdentity AzureAuthType = "WorkloadIdentity"
 )
 )
 
 
@@ -44,13 +44,17 @@ const (
 type AzureEnvironmentType string
 type AzureEnvironmentType string
 
 
 const (
 const (
-	AzureEnvironmentPublicCloud       AzureEnvironmentType = "PublicCloud"
+	// AzureEnvironmentPublicCloud represents the Azure public cloud environment.
+	AzureEnvironmentPublicCloud AzureEnvironmentType = "PublicCloud"
+	// AzureEnvironmentUSGovernmentCloud represents the Azure US government cloud environment.
 	AzureEnvironmentUSGovernmentCloud AzureEnvironmentType = "USGovernmentCloud"
 	AzureEnvironmentUSGovernmentCloud AzureEnvironmentType = "USGovernmentCloud"
-	AzureEnvironmentChinaCloud        AzureEnvironmentType = "ChinaCloud"
-	AzureEnvironmentGermanCloud       AzureEnvironmentType = "GermanCloud"
+	// AzureEnvironmentChinaCloud represents the Azure China cloud environment.
+	AzureEnvironmentChinaCloud AzureEnvironmentType = "ChinaCloud"
+	// AzureEnvironmentGermanCloud represents the Azure German cloud environment.
+	AzureEnvironmentGermanCloud AzureEnvironmentType = "GermanCloud"
 )
 )
 
 
-// Configures an store to sync secrets using Azure KV.
+// AzureKVProvider configures a store to sync secrets using Azure Key Vault.
 type AzureKVProvider struct {
 type AzureKVProvider struct {
 	// Auth type defines how to authenticate to the keyvault service.
 	// Auth type defines how to authenticate to the keyvault service.
 	// Valid values are:
 	// Valid values are:
@@ -88,7 +92,7 @@ type AzureKVProvider struct {
 	IdentityID *string `json:"identityId,omitempty"`
 	IdentityID *string `json:"identityId,omitempty"`
 }
 }
 
 
-// Configuration used to authenticate with Azure.
+// AzureKVAuth defines configuration for authentication with Azure Key Vault.
 type AzureKVAuth struct {
 type AzureKVAuth struct {
 	// The Azure clientId of the service principle or managed identity used for authentication.
 	// The Azure clientId of the service principle or managed identity used for authentication.
 	// +optional
 	// +optional

+ 4 - 2
apis/externalsecrets/v1beta1/secretstore_beyondtrust_types.go

@@ -18,6 +18,7 @@ package v1beta1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// BeyondTrustProviderSecretRef defines a reference to a secret containing credentials for the BeyondTrust provider.
 type BeyondTrustProviderSecretRef struct {
 type BeyondTrustProviderSecretRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,7 +30,7 @@ type BeyondTrustProviderSecretRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
-// Configures a store to sync secrets using BeyondTrust Password Safe.
+// BeyondtrustAuth configures authentication for BeyondTrust Password Safe.
 type BeyondtrustAuth struct {
 type BeyondtrustAuth struct {
 	// APIKey If not provided then ClientID/ClientSecret become required.
 	// APIKey If not provided then ClientID/ClientSecret become required.
 	APIKey *BeyondTrustProviderSecretRef `json:"apiKey,omitempty"`
 	APIKey *BeyondTrustProviderSecretRef `json:"apiKey,omitempty"`
@@ -43,7 +44,7 @@ type BeyondtrustAuth struct {
 	CertificateKey *BeyondTrustProviderSecretRef `json:"certificateKey,omitempty"`
 	CertificateKey *BeyondTrustProviderSecretRef `json:"certificateKey,omitempty"`
 }
 }
 
 
-// Configures a store to sync secrets using BeyondTrust Password Safe.
+// BeyondtrustServer defines configuration for connecting to BeyondTrust Password Safe server.
 type BeyondtrustServer struct {
 type BeyondtrustServer struct {
 	// +required - BeyondTrust Password Safe API URL. https://example.com:443/beyondtrust/api/public/V3.
 	// +required - BeyondTrust Password Safe API URL. https://example.com:443/beyondtrust/api/public/V3.
 	APIURL string `json:"apiUrl"`
 	APIURL string `json:"apiUrl"`
@@ -59,6 +60,7 @@ type BeyondtrustServer struct {
 	ClientTimeOutSeconds int `json:"clientTimeOutSeconds,omitempty"`
 	ClientTimeOutSeconds int `json:"clientTimeOutSeconds,omitempty"`
 }
 }
 
 
+// BeyondtrustProvider defines configuration for the BeyondTrust Password Safe provider.
 type BeyondtrustProvider struct {
 type BeyondtrustProvider struct {
 
 
 	// Auth configures how the operator authenticates with Beyondtrust.
 	// Auth configures how the operator authenticates with Beyondtrust.

+ 4 - 0
apis/externalsecrets/v1beta1/secretstore_conjur_types.go

@@ -18,6 +18,7 @@ package v1beta1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// ConjurProvider defines configuration for the CyberArk Conjur provider.
 type ConjurProvider struct {
 type ConjurProvider struct {
 	// URL is the endpoint of the Conjur instance.
 	// URL is the endpoint of the Conjur instance.
 	URL string `json:"url"`
 	URL string `json:"url"`
@@ -36,6 +37,7 @@ type ConjurProvider struct {
 	Auth ConjurAuth `json:"auth"`
 	Auth ConjurAuth `json:"auth"`
 }
 }
 
 
+// ConjurAuth defines the methods of authentication with Conjur.
 type ConjurAuth struct {
 type ConjurAuth struct {
 	// Authenticates with Conjur using an API key.
 	// Authenticates with Conjur using an API key.
 	// +optional
 	// +optional
@@ -46,6 +48,7 @@ type ConjurAuth struct {
 	Jwt *ConjurJWT `json:"jwt,omitempty"`
 	Jwt *ConjurJWT `json:"jwt,omitempty"`
 }
 }
 
 
+// ConjurAPIKey defines authentication using a Conjur API key.
 type ConjurAPIKey struct {
 type ConjurAPIKey struct {
 	// Account is the Conjur organization account name.
 	// Account is the Conjur organization account name.
 	Account string `json:"account"`
 	Account string `json:"account"`
@@ -59,6 +62,7 @@ type ConjurAPIKey struct {
 	APIKeyRef *esmeta.SecretKeySelector `json:"apiKeyRef"`
 	APIKeyRef *esmeta.SecretKeySelector `json:"apiKeyRef"`
 }
 }
 
 
+// ConjurJWT defines authentication using a JWT service account token.
 type ConjurJWT struct {
 type ConjurJWT struct {
 	// Account is the Conjur organization account name.
 	// Account is the Conjur organization account name.
 	Account string `json:"account"`
 	Account string `json:"account"`

+ 2 - 0
apis/externalsecrets/v1beta1/secretstore_device42_types.go

@@ -29,10 +29,12 @@ type Device42Provider struct {
 	Auth Device42Auth `json:"auth"`
 	Auth Device42Auth `json:"auth"`
 }
 }
 
 
+// Device42Auth defines the authentication method for the Device42 provider.
 type Device42Auth struct {
 type Device42Auth struct {
 	SecretRef Device42SecretRef `json:"secretRef"`
 	SecretRef Device42SecretRef `json:"secretRef"`
 }
 }
 
 
+// Device42SecretRef defines a reference to a secret containing credentials for the Device42 provider.
 type Device42SecretRef struct {
 type Device42SecretRef struct {
 	// Username / Password is used for authentication.
 	// Username / Password is used for authentication.
 	// +optional
 	// +optional

+ 2 - 2
apis/externalsecrets/v1beta1/secretstore_doppler_types.go

@@ -20,12 +20,12 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Set DOPPLER_BASE_URL and DOPPLER_VERIFY_TLS environment variables to override defaults
-
+// DopplerAuth defines the authentication method for the Doppler provider.
 type DopplerAuth struct {
 type DopplerAuth struct {
 	SecretRef DopplerAuthSecretRef `json:"secretRef"`
 	SecretRef DopplerAuthSecretRef `json:"secretRef"`
 }
 }
 
 
+// DopplerAuthSecretRef defines a reference to a secret containing credentials for the Doppler provider.
 type DopplerAuthSecretRef struct {
 type DopplerAuthSecretRef struct {
 	// The DopplerToken is used for authentication.
 	// The DopplerToken is used for authentication.
 	// See https://docs.doppler.com/reference/api#authentication for auth token types.
 	// See https://docs.doppler.com/reference/api#authentication for auth token types.

+ 1 - 0
apis/externalsecrets/v1beta1/secretstore_fake_types.go

@@ -21,6 +21,7 @@ type FakeProvider struct {
 	Data []FakeProviderData `json:"data"`
 	Data []FakeProviderData `json:"data"`
 }
 }
 
 
+// FakeProviderData defines a key-value pair for the fake provider used in testing.
 type FakeProviderData struct {
 type FakeProviderData struct {
 	Key     string `json:"key"`
 	Key     string `json:"key"`
 	Value   string `json:"value"`
 	Value   string `json:"value"`

+ 3 - 0
apis/externalsecrets/v1beta1/secretstore_fortanix_types.go

@@ -13,10 +13,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 */
 */
+
 package v1beta1
 package v1beta1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// FortanixProvider configures a store to sync secrets using the Fortanix SDKMS provider.
 type FortanixProvider struct {
 type FortanixProvider struct {
 	// APIURL is the URL of SDKMS API. Defaults to `sdkms.fortanix.com`.
 	// APIURL is the URL of SDKMS API. Defaults to `sdkms.fortanix.com`.
 	APIURL string `json:"apiUrl,omitempty"`
 	APIURL string `json:"apiUrl,omitempty"`
@@ -25,6 +27,7 @@ type FortanixProvider struct {
 	APIKey *FortanixProviderSecretRef `json:"apiKey,omitempty"`
 	APIKey *FortanixProviderSecretRef `json:"apiKey,omitempty"`
 }
 }
 
 
+// FortanixProviderSecretRef defines a reference to a secret containing credentials for the Fortanix provider.
 type FortanixProviderSecretRef struct {
 type FortanixProviderSecretRef struct {
 	// SecretRef is a reference to a secret containing the SDKMS API Key.
 	// SecretRef is a reference to a secret containing the SDKMS API Key.
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`

+ 3 - 0
apis/externalsecrets/v1beta1/secretstore_gcpsm_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// GCPSMAuth defines the authentication methods for the GCP Secret Manager provider.
 type GCPSMAuth struct {
 type GCPSMAuth struct {
 	// +optional
 	// +optional
 	SecretRef *GCPSMAuthSecretRef `json:"secretRef,omitempty"`
 	SecretRef *GCPSMAuthSecretRef `json:"secretRef,omitempty"`
@@ -27,12 +28,14 @@ type GCPSMAuth struct {
 	WorkloadIdentity *GCPWorkloadIdentity `json:"workloadIdentity,omitempty"`
 	WorkloadIdentity *GCPWorkloadIdentity `json:"workloadIdentity,omitempty"`
 }
 }
 
 
+// GCPSMAuthSecretRef defines a reference to a secret containing credentials for the GCP Secret Manager provider.
 type GCPSMAuthSecretRef struct {
 type GCPSMAuthSecretRef struct {
 	// The SecretAccessKey is used for authentication
 	// The SecretAccessKey is used for authentication
 	// +optional
 	// +optional
 	SecretAccessKey esmeta.SecretKeySelector `json:"secretAccessKeySecretRef,omitempty"`
 	SecretAccessKey esmeta.SecretKeySelector `json:"secretAccessKeySecretRef,omitempty"`
 }
 }
 
 
+// GCPWorkloadIdentity defines configuration for using GCP Workload Identity authentication.
 type GCPWorkloadIdentity struct {
 type GCPWorkloadIdentity struct {
 	// +kubebuilder:validation:Required
 	// +kubebuilder:validation:Required
 	ServiceAccountRef esmeta.ServiceAccountSelector `json:"serviceAccountRef"`
 	ServiceAccountRef esmeta.ServiceAccountSelector `json:"serviceAccountRef"`

+ 2 - 1
apis/externalsecrets/v1beta1/secretstore_github_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures a store to push secrets to Github Actions.
+// GithubProvider configures a store to push secrets to Github Actions.
 type GithubProvider struct {
 type GithubProvider struct {
 	// URL configures the Github instance URL. Defaults to https://github.com/.
 	// URL configures the Github instance URL. Defaults to https://github.com/.
 	//+kubebuilder:default="https://github.com/"
 	//+kubebuilder:default="https://github.com/"
@@ -49,6 +49,7 @@ type GithubProvider struct {
 	Environment string `json:"environment,omitempty"`
 	Environment string `json:"environment,omitempty"`
 }
 }
 
 
+// GithubAppAuth defines the GitHub App authentication mechanism for the GitHub provider.
 type GithubAppAuth struct {
 type GithubAppAuth struct {
 	PrivateKey esmeta.SecretKeySelector `json:"privateKey"`
 	PrivateKey esmeta.SecretKeySelector `json:"privateKey"`
 }
 }

+ 3 - 1
apis/externalsecrets/v1beta1/secretstore_gitlab_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures a store to sync secrets with a GitLab instance.
+// GitlabProvider configures a store to sync secrets with a GitLab instance.
 type GitlabProvider struct {
 type GitlabProvider struct {
 	// URL configures the GitLab instance URL. Defaults to https://gitlab.com/.
 	// URL configures the GitLab instance URL. Defaults to https://gitlab.com/.
 	URL string `json:"url,omitempty"`
 	URL string `json:"url,omitempty"`
@@ -50,10 +50,12 @@ type GitlabProvider struct {
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 }
 }
 
 
+// GitlabAuth defines the authentication method for the GitLab provider.
 type GitlabAuth struct {
 type GitlabAuth struct {
 	SecretRef GitlabSecretRef `json:"SecretRef"`
 	SecretRef GitlabSecretRef `json:"SecretRef"`
 }
 }
 
 
+// GitlabSecretRef defines a reference to a secret containing credentials for the GitLab provider.
 type GitlabSecretRef struct {
 type GitlabSecretRef struct {
 	// AccessToken is used for authentication.
 	// AccessToken is used for authentication.
 	AccessToken esmeta.SecretKeySelector `json:"accessToken,omitempty"`
 	AccessToken esmeta.SecretKeySelector `json:"accessToken,omitempty"`

+ 4 - 3
apis/externalsecrets/v1beta1/secretstore_ibm_types.go

@@ -20,8 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures an store to sync secrets using a IBM Cloud Secrets Manager
-// backend.
+// IBMProvider configures a store to sync secrets using a IBM Cloud Secrets Manager backend.
 type IBMProvider struct {
 type IBMProvider struct {
 	// Auth configures how secret-manager authenticates with the IBM secrets manager.
 	// Auth configures how secret-manager authenticates with the IBM secrets manager.
 	Auth IBMAuth `json:"auth"`
 	Auth IBMAuth `json:"auth"`
@@ -30,6 +29,7 @@ type IBMProvider struct {
 	ServiceURL *string `json:"serviceUrl,omitempty"`
 	ServiceURL *string `json:"serviceUrl,omitempty"`
 }
 }
 
 
+// IBMAuth defines the authentication methods for the IBM Cloud Secrets Manager provider.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type IBMAuth struct {
 type IBMAuth struct {
@@ -37,12 +37,13 @@ type IBMAuth struct {
 	ContainerAuth *IBMAuthContainerAuth `json:"containerAuth,omitempty"`
 	ContainerAuth *IBMAuthContainerAuth `json:"containerAuth,omitempty"`
 }
 }
 
 
+// IBMAuthSecretRef defines a reference to a secret containing credentials for the IBM provider.
 type IBMAuthSecretRef struct {
 type IBMAuthSecretRef struct {
 	// The SecretAccessKey is used for authentication
 	// The SecretAccessKey is used for authentication
 	SecretAPIKey esmeta.SecretKeySelector `json:"secretApiKeySecretRef,omitempty"`
 	SecretAPIKey esmeta.SecretKeySelector `json:"secretApiKeySecretRef,omitempty"`
 }
 }
 
 
-// IBM Container-based auth with IAM Trusted Profile.
+// IBMAuthContainerAuth defines authentication using IBM Container-based auth with IAM Trusted Profile.
 type IBMAuthContainerAuth struct {
 type IBMAuthContainerAuth struct {
 	// the IBM Trusted Profile
 	// the IBM Trusted Profile
 	Profile string `json:"profile"`
 	Profile string `json:"profile"`

+ 5 - 1
apis/externalsecrets/v1beta1/secretstore_kubernetes_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// KubernetesServer defines the Kubernetes server connection configuration.
 type KubernetesServer struct {
 type KubernetesServer struct {
 
 
 	// configures the Kubernetes server Address.
 	// configures the Kubernetes server Address.
@@ -36,7 +37,7 @@ type KubernetesServer struct {
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 	CAProvider *CAProvider `json:"caProvider,omitempty"`
 }
 }
 
 
-// Configures a store to sync secrets with a Kubernetes instance.
+// KubernetesProvider configures a store to sync secrets with a Kubernetes instance.
 type KubernetesProvider struct {
 type KubernetesProvider struct {
 	// configures the Kubernetes server Address.
 	// configures the Kubernetes server Address.
 	// +optional
 	// +optional
@@ -59,6 +60,7 @@ type KubernetesProvider struct {
 	RemoteNamespace string `json:"remoteNamespace,omitempty"`
 	RemoteNamespace string `json:"remoteNamespace,omitempty"`
 }
 }
 
 
+// KubernetesAuth defines authentication methods for the Kubernetes provider.
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 type KubernetesAuth struct {
 type KubernetesAuth struct {
@@ -75,11 +77,13 @@ type KubernetesAuth struct {
 	ServiceAccount *esmeta.ServiceAccountSelector `json:"serviceAccount,omitempty"`
 	ServiceAccount *esmeta.ServiceAccountSelector `json:"serviceAccount,omitempty"`
 }
 }
 
 
+// CertAuth defines certificate-based authentication for the Kubernetes provider.
 type CertAuth struct {
 type CertAuth struct {
 	ClientCert esmeta.SecretKeySelector `json:"clientCert,omitempty"`
 	ClientCert esmeta.SecretKeySelector `json:"clientCert,omitempty"`
 	ClientKey  esmeta.SecretKeySelector `json:"clientKey,omitempty"`
 	ClientKey  esmeta.SecretKeySelector `json:"clientKey,omitempty"`
 }
 }
 
 
+// TokenAuth defines token-based authentication for the Kubernetes provider.
 type TokenAuth struct {
 type TokenAuth struct {
 	BearerToken esmeta.SecretKeySelector `json:"bearerToken,omitempty"`
 	BearerToken esmeta.SecretKeySelector `json:"bearerToken,omitempty"`
 }
 }

+ 4 - 2
apis/externalsecrets/v1beta1/secretstore_oracle_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// OraclePrincipalType defines the type of principal used for authentication to Oracle Vault.
 // +kubebuilder:validation:Enum="";UserPrincipal;InstancePrincipal;Workload
 // +kubebuilder:validation:Enum="";UserPrincipal;InstancePrincipal;Workload
 type OraclePrincipalType string
 type OraclePrincipalType string
 
 
@@ -32,8 +33,7 @@ const (
 	WorkloadPrincipal OraclePrincipalType = "Workload"
 	WorkloadPrincipal OraclePrincipalType = "Workload"
 )
 )
 
 
-// Configures an store to sync secrets using a Oracle Vault
-// backend.
+// OracleProvider configures a store to sync secrets using an Oracle Vault backend.
 type OracleProvider struct {
 type OracleProvider struct {
 	// Region is the region where vault is located.
 	// Region is the region where vault is located.
 	Region string `json:"region"`
 	Region string `json:"region"`
@@ -68,6 +68,7 @@ type OracleProvider struct {
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 }
 }
 
 
+// OracleAuth defines authentication configuration for the Oracle Vault provider.
 type OracleAuth struct {
 type OracleAuth struct {
 
 
 	// Tenancy is the tenancy OCID where user is located.
 	// Tenancy is the tenancy OCID where user is located.
@@ -80,6 +81,7 @@ type OracleAuth struct {
 	SecretRef OracleSecretRef `json:"secretRef"`
 	SecretRef OracleSecretRef `json:"secretRef"`
 }
 }
 
 
+// OracleSecretRef defines references to secrets containing Oracle credentials.
 type OracleSecretRef struct {
 type OracleSecretRef struct {
 	// PrivateKey is the user's API Signing Key in PEM format, used for authentication.
 	// PrivateKey is the user's API Signing Key in PEM format, used for authentication.
 	PrivateKey esmeta.SecretKeySelector `json:"privatekey"`
 	PrivateKey esmeta.SecretKeySelector `json:"privatekey"`

+ 3 - 1
apis/externalsecrets/v1beta1/secretstore_passworddeport_types.go

@@ -20,7 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// Configures a store to sync secrets with a Password Depot instance.
+// PasswordDepotProvider configures a store to sync secrets with a Password Depot instance.
 type PasswordDepotProvider struct {
 type PasswordDepotProvider struct {
 	// URL configures the Password Depot instance URL.
 	// URL configures the Password Depot instance URL.
 	Host string `json:"host"`
 	Host string `json:"host"`
@@ -32,10 +32,12 @@ type PasswordDepotProvider struct {
 	Auth PasswordDepotAuth `json:"auth"`
 	Auth PasswordDepotAuth `json:"auth"`
 }
 }
 
 
+// PasswordDepotAuth defines the authentication method for the Password Depot provider.
 type PasswordDepotAuth struct {
 type PasswordDepotAuth struct {
 	SecretRef PasswordDepotSecretRef `json:"secretRef"`
 	SecretRef PasswordDepotSecretRef `json:"secretRef"`
 }
 }
 
 
+// PasswordDepotSecretRef defines a reference to a secret containing credentials for the Password Depot provider.
 type PasswordDepotSecretRef struct {
 type PasswordDepotSecretRef struct {
 	// Username / Password is used for authentication.
 	// Username / Password is used for authentication.
 	// +optional
 	// +optional

+ 2 - 0
apis/externalsecrets/v1beta1/secretstore_pulumi_types.go

@@ -20,6 +20,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// PulumiProvider defines configuration for the Pulumi provider.
 type PulumiProvider struct {
 type PulumiProvider struct {
 	// APIURL is the URL of the Pulumi API.
 	// APIURL is the URL of the Pulumi API.
 	// +kubebuilder:default="https://api.pulumi.com/api/esc"
 	// +kubebuilder:default="https://api.pulumi.com/api/esc"
@@ -41,6 +42,7 @@ type PulumiProvider struct {
 	Environment string `json:"environment"`
 	Environment string `json:"environment"`
 }
 }
 
 
+// PulumiProviderSecretRef defines a reference to a secret containing credentials for the Pulumi provider.
 type PulumiProviderSecretRef struct {
 type PulumiProviderSecretRef struct {
 	// SecretRef is a reference to a secret containing the Pulumi API token.
 	// SecretRef is a reference to a secret containing the Pulumi API token.
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`

+ 2 - 0
apis/externalsecrets/v1beta1/secretstore_scaleway_types.go

@@ -18,6 +18,7 @@ package v1beta1
 
 
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 import esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 
 
+// ScalewayProviderSecretRef defines a reference to a secret containing credentials for the Scaleway provider.
 type ScalewayProviderSecretRef struct {
 type ScalewayProviderSecretRef struct {
 
 
 	// Value can be specified directly to set a value without using a secret.
 	// Value can be specified directly to set a value without using a secret.
@@ -29,6 +30,7 @@ type ScalewayProviderSecretRef struct {
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 	SecretRef *esmeta.SecretKeySelector `json:"secretRef,omitempty"`
 }
 }
 
 
+// ScalewayProvider defines configuration for the Scaleway provider.
 type ScalewayProvider struct {
 type ScalewayProvider struct {
 
 
 	// APIURL is the url of the api to use. Defaults to https://api.scaleway.com
 	// APIURL is the url of the api to use. Defaults to https://api.scaleway.com

+ 23 - 7
apis/externalsecrets/v1beta1/secretstore_types.go

@@ -208,14 +208,17 @@ type SecretStoreProvider struct {
 	CloudruSM *CloudruSMProvider `json:"cloudrusm,omitempty"`
 	CloudruSM *CloudruSMProvider `json:"cloudrusm,omitempty"`
 }
 }
 
 
+// CAProviderType defines the type of provider to use for CA certificates.
 type CAProviderType string
 type CAProviderType string
 
 
 const (
 const (
-	CAProviderTypeSecret    CAProviderType = "Secret"
+	// CAProviderTypeSecret indicates that the CA certificate is stored in a Secret.
+	CAProviderTypeSecret CAProviderType = "Secret"
+	// CAProviderTypeConfigMap indicates that the CA certificate is stored in a ConfigMap.
 	CAProviderTypeConfigMap CAProviderType = "ConfigMap"
 	CAProviderTypeConfigMap CAProviderType = "ConfigMap"
 )
 )
 
 
-// Used to provide custom certificate authority (CA) certificates
+// CAProvider provides custom certificate authority (CA) certificates
 // for a secret store. The CAProvider points to a Secret or ConfigMap resource
 // for a secret store. The CAProvider points to a Secret or ConfigMap resource
 // that contains a PEM-encoded certificate.
 // that contains a PEM-encoded certificate.
 type CAProvider struct {
 type CAProvider struct {
@@ -245,22 +248,32 @@ type CAProvider struct {
 	Namespace *string `json:"namespace,omitempty"`
 	Namespace *string `json:"namespace,omitempty"`
 }
 }
 
 
+// SecretStoreRetrySettings defines configuration for retrying failed requests to the provider.
 type SecretStoreRetrySettings struct {
 type SecretStoreRetrySettings struct {
-	MaxRetries    *int32  `json:"maxRetries,omitempty"`
+	// MaxRetries is the maximum number of retry attempts.
+	MaxRetries *int32 `json:"maxRetries,omitempty"`
+	// RetryInterval is the interval between retry attempts.
 	RetryInterval *string `json:"retryInterval,omitempty"`
 	RetryInterval *string `json:"retryInterval,omitempty"`
 }
 }
 
 
+// SecretStoreConditionType represents the condition type of the SecretStore.
 type SecretStoreConditionType string
 type SecretStoreConditionType string
 
 
 const (
 const (
+	// SecretStoreReady indicates that the SecretStore has been successfully configured.
 	SecretStoreReady SecretStoreConditionType = "Ready"
 	SecretStoreReady SecretStoreConditionType = "Ready"
 
 
-	ReasonInvalidStore          = "InvalidStoreConfiguration"
+	// ReasonInvalidStore indicates that the SecretStore has invalid configuration.
+	ReasonInvalidStore = "InvalidStoreConfiguration"
+	// ReasonInvalidProviderConfig indicates that the provider configuration is invalid.
 	ReasonInvalidProviderConfig = "InvalidProviderConfig"
 	ReasonInvalidProviderConfig = "InvalidProviderConfig"
-	ReasonValidationFailed      = "ValidationFailed"
-	ReasonStoreValid            = "Valid"
+	// ReasonValidationFailed indicates that validation of the SecretStore failed.
+	ReasonValidationFailed = "ValidationFailed"
+	// ReasonStoreValid indicates that the store is valid.
+	ReasonStoreValid = "Valid"
 )
 )
 
 
+// SecretStoreStatusCondition defines the observed condition of the SecretStore.
 type SecretStoreStatusCondition struct {
 type SecretStoreStatusCondition struct {
 	Type   SecretStoreConditionType `json:"type"`
 	Type   SecretStoreConditionType `json:"type"`
 	Status corev1.ConditionStatus   `json:"status"`
 	Status corev1.ConditionStatus   `json:"status"`
@@ -279,8 +292,11 @@ type SecretStoreStatusCondition struct {
 type SecretStoreCapabilities string
 type SecretStoreCapabilities string
 
 
 const (
 const (
-	SecretStoreReadOnly  SecretStoreCapabilities = "ReadOnly"
+	// SecretStoreReadOnly indicates that the SecretStore only supports reading secrets.
+	SecretStoreReadOnly SecretStoreCapabilities = "ReadOnly"
+	// SecretStoreWriteOnly indicates that the SecretStore only supports writing secrets.
 	SecretStoreWriteOnly SecretStoreCapabilities = "WriteOnly"
 	SecretStoreWriteOnly SecretStoreCapabilities = "WriteOnly"
+	// SecretStoreReadWrite indicates that the SecretStore supports both reading and writing secrets.
 	SecretStoreReadWrite SecretStoreCapabilities = "ReadWrite"
 	SecretStoreReadWrite SecretStoreCapabilities = "ReadWrite"
 )
 )
 
 

+ 1 - 0
apis/externalsecrets/v1beta1/secretstore_validator.go

@@ -32,6 +32,7 @@ const (
 	errInvalidStore = "invalid store"
 	errInvalidStore = "invalid store"
 )
 )
 
 
+// GenericStoreValidator provides validation for SecretStore and ClusterSecretStore resources.
 type GenericStoreValidator struct{}
 type GenericStoreValidator struct{}
 
 
 // ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
 // ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

+ 6 - 5
apis/externalsecrets/v1beta1/secretstore_vault_types.go

@@ -20,15 +20,17 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// VaultKVStoreVersion defines the version of the KV store in Vault.
 type VaultKVStoreVersion string
 type VaultKVStoreVersion string
 
 
 const (
 const (
+	// VaultKVStoreV1 represents version 1 of the Vault KV store.
 	VaultKVStoreV1 VaultKVStoreVersion = "v1"
 	VaultKVStoreV1 VaultKVStoreVersion = "v1"
+	// VaultKVStoreV2 represents version 2 of the Vault KV store.
 	VaultKVStoreV2 VaultKVStoreVersion = "v2"
 	VaultKVStoreV2 VaultKVStoreVersion = "v2"
 )
 )
 
 
-// Configures an store to sync secrets using a HashiCorp Vault
-// KV backend.
+// VaultProvider configures a store to sync secrets using a HashiCorp Vault KV backend.
 type VaultProvider struct {
 type VaultProvider struct {
 	// Auth configures how secret-manager authenticates with the Vault server.
 	// Auth configures how secret-manager authenticates with the Vault server.
 	Auth *VaultAuth `json:"auth,omitempty"`
 	Auth *VaultAuth `json:"auth,omitempty"`
@@ -188,8 +190,7 @@ type VaultAppRole struct {
 	SecretRef esmeta.SecretKeySelector `json:"secretRef"`
 	SecretRef esmeta.SecretKeySelector `json:"secretRef"`
 }
 }
 
 
-// Authenticate against Vault using a Kubernetes ServiceAccount token stored in
-// a Secret.
+// VaultKubernetesAuth authenticates against Vault using a Kubernetes ServiceAccount token stored in a Secret.
 type VaultKubernetesAuth struct {
 type VaultKubernetesAuth struct {
 	// Path where the Kubernetes authentication backend is mounted in Vault, e.g:
 	// Path where the Kubernetes authentication backend is mounted in Vault, e.g:
 	// "kubernetes"
 	// "kubernetes"
@@ -244,7 +245,7 @@ type VaultAwsAuth struct {
 	JWTAuth *VaultAwsJWTAuth `json:"jwt,omitempty"`
 	JWTAuth *VaultAwsJWTAuth `json:"jwt,omitempty"`
 }
 }
 
 
-// VaultAWSAuthSecretRef holds secret references for AWS credentials
+// VaultAwsAuthSecretRef holds secret references for AWS credentials
 // both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.
 // both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.
 type VaultAwsAuthSecretRef struct {
 type VaultAwsAuthSecretRef struct {
 	// The AccessKeyID is used for authentication
 	// The AccessKeyID is used for authentication

+ 2 - 0
apis/externalsecrets/v1beta1/secretstore_webhook.go

@@ -20,6 +20,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	ctrl "sigs.k8s.io/controller-runtime"
 )
 )
 
 
+// SetupWebhookWithManager configures the webhook manager for the SecretStore.
 func (c *SecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 func (c *SecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 	return ctrl.NewWebhookManagedBy(mgr).
 	return ctrl.NewWebhookManagedBy(mgr).
 		For(c).
 		For(c).
@@ -27,6 +28,7 @@ func (c *SecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 		Complete()
 		Complete()
 }
 }
 
 
+// SetupWebhookWithManager configures the webhook manager for the ClusterSecretStore.
 func (c *ClusterSecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 func (c *ClusterSecretStore) SetupWebhookWithManager(mgr ctrl.Manager) error {
 	return ctrl.NewWebhookManagedBy(mgr).
 	return ctrl.NewWebhookManagedBy(mgr).
 		For(c).
 		For(c).

+ 8 - 3
apis/externalsecrets/v1beta1/secretstore_webhook_types.go

@@ -22,7 +22,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
-// WebHookProvider Configures an store to sync secrets from simple web apis.
+// WebhookProvider configures a store to sync secrets from simple web APIs.
 type WebhookProvider struct {
 type WebhookProvider struct {
 	// Webhook Method
 	// Webhook Method
 	// +optional, default GET
 	// +optional, default GET
@@ -84,14 +84,17 @@ type NTLMProtocol struct {
 	Password esmeta.SecretKeySelector `json:"passwordSecret"`
 	Password esmeta.SecretKeySelector `json:"passwordSecret"`
 }
 }
 
 
+// WebhookCAProviderType defines the type of provider to use for CA certificates with Webhook providers.
 type WebhookCAProviderType string
 type WebhookCAProviderType string
 
 
 const (
 const (
-	WebhookCAProviderTypeSecret    WebhookCAProviderType = "Secret"
+	// WebhookCAProviderTypeSecret indicates that the CA certificate is stored in a Secret.
+	WebhookCAProviderTypeSecret WebhookCAProviderType = "Secret"
+	// WebhookCAProviderTypeConfigMap indicates that the CA certificate is stored in a ConfigMap.
 	WebhookCAProviderTypeConfigMap WebhookCAProviderType = "ConfigMap"
 	WebhookCAProviderTypeConfigMap WebhookCAProviderType = "ConfigMap"
 )
 )
 
 
-// Defines a location to fetch the cert for the webhook provider from.
+// WebhookCAProvider defines a location to fetch the certificate for the webhook provider.
 type WebhookCAProvider struct {
 type WebhookCAProvider struct {
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
@@ -118,12 +121,14 @@ type WebhookCAProvider struct {
 	Namespace *string `json:"namespace,omitempty"`
 	Namespace *string `json:"namespace,omitempty"`
 }
 }
 
 
+// WebhookResult defines how to extract and format the result from the webhook response.
 type WebhookResult struct {
 type WebhookResult struct {
 	// Json path of return value
 	// Json path of return value
 	// +optional
 	// +optional
 	JSONPath string `json:"jsonPath,omitempty"`
 	JSONPath string `json:"jsonPath,omitempty"`
 }
 }
 
 
+// WebhookSecret defines a secret to be used in webhook templates.
 type WebhookSecret struct {
 type WebhookSecret struct {
 	// Name of this secret in templates
 	// Name of this secret in templates
 	Name string `json:"name"`
 	Name string `json:"name"`

+ 3 - 1
apis/externalsecrets/v1beta1/secretstore_yandexcertificatemanager_types.go

@@ -20,17 +20,19 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// YandexCertificateManagerAuth defines authentication configuration for the Yandex Certificate Manager provider.
 type YandexCertificateManagerAuth struct {
 type YandexCertificateManagerAuth struct {
 	// The authorized key used for authentication
 	// The authorized key used for authentication
 	// +optional
 	// +optional
 	AuthorizedKey esmeta.SecretKeySelector `json:"authorizedKeySecretRef,omitempty"`
 	AuthorizedKey esmeta.SecretKeySelector `json:"authorizedKeySecretRef,omitempty"`
 }
 }
 
 
+// YandexCertificateManagerCAProvider defines CA certificate configuration for Yandex Certificate Manager.
 type YandexCertificateManagerCAProvider struct {
 type YandexCertificateManagerCAProvider struct {
 	Certificate esmeta.SecretKeySelector `json:"certSecretRef,omitempty"`
 	Certificate esmeta.SecretKeySelector `json:"certSecretRef,omitempty"`
 }
 }
 
 
-// YandexCertificateManagerProvider Configures a store to sync secrets using the Yandex Certificate Manager provider.
+// YandexCertificateManagerProvider configures a store to sync secrets using the Yandex Certificate Manager provider.
 type YandexCertificateManagerProvider struct {
 type YandexCertificateManagerProvider struct {
 	// Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443')
 	// Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443')
 	// +optional
 	// +optional

+ 3 - 1
apis/externalsecrets/v1beta1/secretstore_yandexlockbox_types.go

@@ -20,17 +20,19 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// YandexLockboxAuth defines authentication configuration for the Yandex Lockbox provider.
 type YandexLockboxAuth struct {
 type YandexLockboxAuth struct {
 	// The authorized key used for authentication
 	// The authorized key used for authentication
 	// +optional
 	// +optional
 	AuthorizedKey esmeta.SecretKeySelector `json:"authorizedKeySecretRef,omitempty"`
 	AuthorizedKey esmeta.SecretKeySelector `json:"authorizedKeySecretRef,omitempty"`
 }
 }
 
 
+// YandexLockboxCAProvider defines CA certificate configuration for Yandex Lockbox.
 type YandexLockboxCAProvider struct {
 type YandexLockboxCAProvider struct {
 	Certificate esmeta.SecretKeySelector `json:"certSecretRef,omitempty"`
 	Certificate esmeta.SecretKeySelector `json:"certSecretRef,omitempty"`
 }
 }
 
 
-// YandexLockboxProvider Configures a store to sync secrets using the Yandex Lockbox provider.
+// YandexLockboxProvider configures a store to sync secrets using the Yandex Lockbox provider.
 type YandexLockboxProvider struct {
 type YandexLockboxProvider struct {
 	// Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443')
 	// Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443')
 	// +optional
 	// +optional

+ 1 - 0
apis/generators/v1alpha1/generator_interfaces.go

@@ -53,4 +53,5 @@ type Generator interface {
 	) error
 	) error
 }
 }
 
 
+// GeneratorProviderState represents the state of a generator provider that can be stored and retrieved.
 type GeneratorProviderState *apiextensions.JSON
 type GeneratorProviderState *apiextensions.JSON

+ 11 - 2
apis/generators/v1alpha1/generator_state_types.go

@@ -23,6 +23,7 @@ import (
 	runtime "k8s.io/apimachinery/pkg/runtime"
 	runtime "k8s.io/apimachinery/pkg/runtime"
 )
 )
 
 
+// StatefulResource represents a Kubernetes resource that has state which can be tracked.
 // +kubebuilder:object:root=false
 // +kubebuilder:object:root=false
 // +kubebuilder:object:generate:false
 // +kubebuilder:object:generate:false
 // +k8s:deepcopy-gen:interfaces=nil
 // +k8s:deepcopy-gen:interfaces=nil
@@ -33,12 +34,13 @@ type StatefulResource interface {
 }
 }
 
 
 const (
 const (
-	// The owner key points to the resource which created the generator state.
+	// GeneratorStateLabelOwnerKey points to the resource which created the generator state.
 	// It is used in the garbage collection process to identify all states
 	// It is used in the garbage collection process to identify all states
 	// that belong to a specific resource.
 	// that belong to a specific resource.
 	GeneratorStateLabelOwnerKey = "generators.external-secrets.io/owner-key"
 	GeneratorStateLabelOwnerKey = "generators.external-secrets.io/owner-key"
 )
 )
 
 
+// GeneratorStateSpec defines the desired state of a generator state resource.
 type GeneratorStateSpec struct {
 type GeneratorStateSpec struct {
 	// GarbageCollectionDeadline is the time after which the generator state
 	// GarbageCollectionDeadline is the time after which the generator state
 	// will be deleted.
 	// will be deleted.
@@ -57,12 +59,15 @@ type GeneratorStateSpec struct {
 	State *apiextensions.JSON `json:"state"`
 	State *apiextensions.JSON `json:"state"`
 }
 }
 
 
+// GeneratorStateConditionType represents the type of condition for a generator state.
 type GeneratorStateConditionType string
 type GeneratorStateConditionType string
 
 
 const (
 const (
+	// GeneratorStateReady indicates the generator state is ready and available.
 	GeneratorStateReady GeneratorStateConditionType = "Ready"
 	GeneratorStateReady GeneratorStateConditionType = "Ready"
 )
 )
 
 
+// GeneratorStateStatusCondition represents the observed condition of a generator state.
 type GeneratorStateStatusCondition struct {
 type GeneratorStateStatusCondition struct {
 	Type   GeneratorStateConditionType `json:"type"`
 	Type   GeneratorStateConditionType `json:"type"`
 	Status corev1.ConditionStatus      `json:"status"`
 	Status corev1.ConditionStatus      `json:"status"`
@@ -78,14 +83,18 @@ type GeneratorStateStatusCondition struct {
 }
 }
 
 
 const (
 const (
+	// ConditionReasonCreated indicates the generator state was successfully created.
 	ConditionReasonCreated = "Created"
 	ConditionReasonCreated = "Created"
-	ConditionReasonError   = "Error"
+	// ConditionReasonError indicates an error occurred with the generator state.
+	ConditionReasonError = "Error"
 )
 )
 
 
+// GeneratorStateStatus defines the observed state of a generator state resource.
 type GeneratorStateStatus struct {
 type GeneratorStateStatus struct {
 	Conditions []GeneratorStateStatusCondition `json:"conditions,omitempty"`
 	Conditions []GeneratorStateStatusCondition `json:"conditions,omitempty"`
 }
 }
 
 
+// GeneratorState represents the state created and managed by a generator resource.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"
 // +kubebuilder:metadata:labels="external-secrets.io/component=controller"

+ 1 - 0
apis/generators/v1alpha1/generator_types.go

@@ -16,6 +16,7 @@ limitations under the License.
 
 
 package v1alpha1
 package v1alpha1
 
 
+// ControllerClassResource defines a resource that can be assigned to a specific controller class.
 type ControllerClassResource struct {
 type ControllerClassResource struct {
 	Spec struct {
 	Spec struct {
 		ControllerClass string `json:"controller"`
 		ControllerClass string `json:"controller"`

+ 33 - 15
apis/generators/v1alpha1/register.go

@@ -35,26 +35,44 @@ var (
 
 
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
 	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
-	AddToScheme   = SchemeBuilder.AddToScheme
+
+	// AddToScheme adds the types in this group-version to the given scheme.
+	AddToScheme = SchemeBuilder.AddToScheme
 )
 )
 
 
 var (
 var (
+	// ECRAuthorizationTokenKind is the kind name for ECRAuthorizationToken resource.
 	ECRAuthorizationTokenKind = reflect.TypeOf(ECRAuthorizationToken{}).Name()
 	ECRAuthorizationTokenKind = reflect.TypeOf(ECRAuthorizationToken{}).Name()
-	STSSessionTokenKind       = reflect.TypeOf(STSSessionToken{}).Name()
-	GCRAccessTokenKind        = reflect.TypeOf(GCRAccessToken{}).Name()
-	ACRAccessTokenKind        = reflect.TypeOf(ACRAccessToken{}).Name()
-	PasswordKind              = reflect.TypeOf(Password{}).Name()
-	SSHKeyKind                = reflect.TypeOf(SSHKey{}).Name()
-	WebhookKind               = reflect.TypeOf(Webhook{}).Name()
-	FakeKind                  = reflect.TypeOf(Fake{}).Name()
-	VaultDynamicSecretKind    = reflect.TypeOf(VaultDynamicSecret{}).Name()
-	GithubAccessTokenKind     = reflect.TypeOf(GithubAccessToken{}).Name()
-	QuayAccessTokenKind       = reflect.TypeOf(QuayAccessToken{}).Name()
+	// STSSessionTokenKind is the kind name for STSSessionToken resource.
+	STSSessionTokenKind = reflect.TypeOf(STSSessionToken{}).Name()
+	// GCRAccessTokenKind is the kind name for GCRAccessToken resource.
+	GCRAccessTokenKind = reflect.TypeOf(GCRAccessToken{}).Name()
+	// ACRAccessTokenKind is the kind name for ACRAccessToken resource.
+	ACRAccessTokenKind = reflect.TypeOf(ACRAccessToken{}).Name()
+	// PasswordKind is the kind name for Password resource.
+	PasswordKind = reflect.TypeOf(Password{}).Name()
+	// SSHKeyKind is the kind name for SSHKey resource.
+	SSHKeyKind = reflect.TypeOf(SSHKey{}).Name()
+	// WebhookKind is the kind name for Webhook resource.
+	WebhookKind = reflect.TypeOf(Webhook{}).Name()
+	// FakeKind is the kind name for Fake resource.
+	FakeKind = reflect.TypeOf(Fake{}).Name()
+	// VaultDynamicSecretKind is the kind name for VaultDynamicSecret resource.
+	VaultDynamicSecretKind = reflect.TypeOf(VaultDynamicSecret{}).Name()
+	// GithubAccessTokenKind is the kind name for GithubAccessToken resource.
+	GithubAccessTokenKind = reflect.TypeOf(GithubAccessToken{}).Name()
+	// QuayAccessTokenKind is the kind name for QuayAccessToken resource.
+	QuayAccessTokenKind = reflect.TypeOf(QuayAccessToken{}).Name()
+	// UUIDKind is the kind name for UUID resource.
+	UUIDKind = reflect.TypeOf(UUID{}).Name()
+	// GrafanaKind is the kind name for Grafana resource.
+	GrafanaKind = reflect.TypeOf(Grafana{}).Name()
+	// MFAKind is the kind name for MFA resource.
+	MFAKind = reflect.TypeOf(MFA{}).Name()
+	// ClusterGeneratorKind is the kind name for ClusterGenerator resource.
+	ClusterGeneratorKind = reflect.TypeOf(ClusterGenerator{}).Name()
+	// CloudsmithAccessTokenKind is the kind name for CloudsmithAccessToken resource.
 	CloudsmithAccessTokenKind = reflect.TypeOf(CloudsmithAccessToken{}).Name()
 	CloudsmithAccessTokenKind = reflect.TypeOf(CloudsmithAccessToken{}).Name()
-	UUIDKind                  = reflect.TypeOf(UUID{}).Name()
-	GrafanaKind               = reflect.TypeOf(Grafana{}).Name()
-	MFAKind                   = reflect.TypeOf(MFA{}).Name()
-	ClusterGeneratorKind      = reflect.TypeOf(ClusterGenerator{}).Name()
 )
 )
 
 
 func init() {
 func init() {

+ 7 - 3
apis/generators/v1alpha1/types_acr.go

@@ -48,13 +48,14 @@ type ACRAccessTokenSpec struct {
 	Scope string `json:"scope,omitempty"`
 	Scope string `json:"scope,omitempty"`
 
 
 	// EnvironmentType specifies the Azure cloud environment endpoints to use for
 	// EnvironmentType specifies the Azure cloud environment endpoints to use for
-	// connecting and authenticating with Azure. By default it points to the public cloud AAD endpoint.
+	// connecting and authenticating with Azure. By default, it points to the public cloud AAD endpoint.
 	// The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152
 	// The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152
 	// PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud
 	// PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud
 	// +kubebuilder:default=PublicCloud
 	// +kubebuilder:default=PublicCloud
 	EnvironmentType esv1.AzureEnvironmentType `json:"environmentType,omitempty"`
 	EnvironmentType esv1.AzureEnvironmentType `json:"environmentType,omitempty"`
 }
 }
 
 
+// ACRAuth defines the authentication methods for Azure Container Registry.
 type ACRAuth struct {
 type ACRAuth struct {
 	// ServicePrincipal uses Azure Service Principal credentials to authenticate with Azure.
 	// ServicePrincipal uses Azure Service Principal credentials to authenticate with Azure.
 	// +optional
 	// +optional
@@ -69,15 +70,18 @@ type ACRAuth struct {
 	WorkloadIdentity *AzureACRWorkloadIdentityAuth `json:"workloadIdentity,omitempty"`
 	WorkloadIdentity *AzureACRWorkloadIdentityAuth `json:"workloadIdentity,omitempty"`
 }
 }
 
 
+// AzureACRServicePrincipalAuth defines the configuration for using Azure Service Principal authentication.
 type AzureACRServicePrincipalAuth struct {
 type AzureACRServicePrincipalAuth struct {
 	SecretRef AzureACRServicePrincipalAuthSecretRef `json:"secretRef"`
 	SecretRef AzureACRServicePrincipalAuthSecretRef `json:"secretRef"`
 }
 }
 
 
+// AzureACRManagedIdentityAuth defines the configuration for using Azure Managed Identity authentication.
 type AzureACRManagedIdentityAuth struct {
 type AzureACRManagedIdentityAuth struct {
 	// If multiple Managed Identity is assigned to the pod, you can select the one to be used
 	// If multiple Managed Identity is assigned to the pod, you can select the one to be used
 	IdentityID string `json:"identityId,omitempty"`
 	IdentityID string `json:"identityId,omitempty"`
 }
 }
 
 
+// AzureACRWorkloadIdentityAuth defines the configuration for using Azure Workload Identity authentication.
 type AzureACRWorkloadIdentityAuth struct {
 type AzureACRWorkloadIdentityAuth struct {
 	// ServiceAccountRef specified the service account
 	// ServiceAccountRef specified the service account
 	// that should be used when authenticating with WorkloadIdentity.
 	// that should be used when authenticating with WorkloadIdentity.
@@ -85,8 +89,8 @@ type AzureACRWorkloadIdentityAuth struct {
 	ServiceAccountRef *smmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 	ServiceAccountRef *smmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 }
 }
 
 
-// Configuration used to authenticate with Azure using static
-// credentials stored in a Kind=Secret.
+// AzureACRServicePrincipalAuthSecretRef defines the secret references for Azure Service Principal authentication.
+// It uses static credentials stored in a Kind=Secret.
 type AzureACRServicePrincipalAuthSecretRef struct {
 type AzureACRServicePrincipalAuthSecretRef struct {
 	// The Azure clientId of the service principle used for authentication.
 	// The Azure clientId of the service principle used for authentication.
 	ClientID smmeta.SecretKeySelector `json:"clientId,omitempty"`
 	ClientID smmeta.SecretKeySelector `json:"clientId,omitempty"`

+ 1 - 0
apis/generators/v1alpha1/types_cloudsmith.go

@@ -22,6 +22,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// CloudsmithAccessTokenSpec defines the configuration for generating a Cloudsmith access token using OIDC authentication.
 type CloudsmithAccessTokenSpec struct {
 type CloudsmithAccessTokenSpec struct {
 	// APIURL configures the Cloudsmith API URL. Defaults to https://api.cloudsmith.io.
 	// APIURL configures the Cloudsmith API URL. Defaults to https://api.cloudsmith.io.
 	// +kubebuilder:validation:Optional
 	// +kubebuilder:validation:Optional

+ 31 - 14
apis/generators/v1alpha1/types_cluster.go

@@ -20,6 +20,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 )
 
 
+// ClusterGeneratorSpec defines the desired state of a ClusterGenerator.
 type ClusterGeneratorSpec struct {
 type ClusterGeneratorSpec struct {
 	// Kind the kind of this generator.
 	// Kind the kind of this generator.
 	Kind GeneratorKind `json:"kind"`
 	Kind GeneratorKind `json:"kind"`
@@ -33,23 +34,39 @@ type ClusterGeneratorSpec struct {
 type GeneratorKind string
 type GeneratorKind string
 
 
 const (
 const (
-	GeneratorKindACRAccessToken        GeneratorKind = "ACRAccessToken"
-	GeneratorKindCloudsmithAccessToken GeneratorKind = "CloudsmithAccessToken"
+	// GeneratorKindACRAccessToken represents an Azure Container Registry access token generator.
+	GeneratorKindACRAccessToken GeneratorKind = "ACRAccessToken"
+	// GeneratorKindECRAuthorizationToken represents an AWS ECR authorization token generator.
 	GeneratorKindECRAuthorizationToken GeneratorKind = "ECRAuthorizationToken"
 	GeneratorKindECRAuthorizationToken GeneratorKind = "ECRAuthorizationToken"
-	GeneratorKindFake                  GeneratorKind = "Fake"
-	GeneratorKindGCRAccessToken        GeneratorKind = "GCRAccessToken"
-	GeneratorKindGithubAccessToken     GeneratorKind = "GithubAccessToken"
-	GeneratorKindQuayAccessToken       GeneratorKind = "QuayAccessToken"
-	GeneratorKindPassword              GeneratorKind = "Password"
-	GeneratorKindSSHKey                GeneratorKind = "SSHKey"
-	GeneratorKindSTSSessionToken       GeneratorKind = "STSSessionToken"
-	GeneratorKindUUID                  GeneratorKind = "UUID"
-	GeneratorKindVaultDynamicSecret    GeneratorKind = "VaultDynamicSecret"
-	GeneratorKindWebhook               GeneratorKind = "Webhook"
-	GeneratorKindGrafana               GeneratorKind = "Grafana"
-	GeneratorKindMFA                   GeneratorKind = "MFA"
+	// GeneratorKindFake represents a fake generator for testing purposes.
+	GeneratorKindFake GeneratorKind = "Fake"
+	// GeneratorKindGCRAccessToken represents a Google Container Registry access token generator.
+	GeneratorKindGCRAccessToken GeneratorKind = "GCRAccessToken"
+	// GeneratorKindGithubAccessToken represents a GitHub access token generator.
+	GeneratorKindGithubAccessToken GeneratorKind = "GithubAccessToken"
+	// GeneratorKindQuayAccessToken represents a Quay access token generator.
+	GeneratorKindQuayAccessToken GeneratorKind = "QuayAccessToken"
+	// GeneratorKindPassword represents a password generator.
+	GeneratorKindPassword GeneratorKind = "Password"
+	// GeneratorKindSSHKey represents an SSH key generator.
+	GeneratorKindSSHKey GeneratorKind = "SSHKey"
+	// GeneratorKindSTSSessionToken represents an AWS STS session token generator.
+	GeneratorKindSTSSessionToken GeneratorKind = "STSSessionToken"
+	// GeneratorKindUUID represents a UUID generator.
+	GeneratorKindUUID GeneratorKind = "UUID"
+	// GeneratorKindVaultDynamicSecret represents a HashiCorp Vault dynamic secret generator.
+	GeneratorKindVaultDynamicSecret GeneratorKind = "VaultDynamicSecret"
+	// GeneratorKindWebhook represents a webhook-based generator.
+	GeneratorKindWebhook GeneratorKind = "Webhook"
+	// GeneratorKindGrafana represents a Grafana token generator.
+	GeneratorKindGrafana GeneratorKind = "Grafana"
+	// GeneratorKindMFA represents a Multi-Factor Authentication generator.
+	GeneratorKindMFA GeneratorKind = "MFA"
+	// GeneratorKindCloudsmithAccessToken represents a Cloudsmith access token generator.
+	GeneratorKindCloudsmithAccessToken GeneratorKind = "CloudsmithAccessToken"
 )
 )
 
 
+// GeneratorSpec defines the configuration for various supported generator types.
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MaxProperties=1
 // +kubebuilder:validation:MinProperties=1
 // +kubebuilder:validation:MinProperties=1
 type GeneratorSpec struct {
 type GeneratorSpec struct {

+ 3 - 3
apis/generators/v1alpha1/types_ecr.go

@@ -22,6 +22,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// ECRAuthorizationTokenSpec defines the desired state to generate an AWS ECR authorization token.
 type ECRAuthorizationTokenSpec struct {
 type ECRAuthorizationTokenSpec struct {
 	// Region specifies the region to operate in.
 	// Region specifies the region to operate in.
 	Region string `json:"region"`
 	Region string `json:"region"`
@@ -67,13 +68,12 @@ type AWSAuthSecretRef struct {
 	SessionToken *esmeta.SecretKeySelector `json:"sessionTokenSecretRef,omitempty"`
 	SessionToken *esmeta.SecretKeySelector `json:"sessionTokenSecretRef,omitempty"`
 }
 }
 
 
-// Authenticate against AWS using service account tokens.
+// AWSJWTAuth provides configuration to authenticate against AWS using service account tokens.
 type AWSJWTAuth struct {
 type AWSJWTAuth struct {
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 	ServiceAccountRef *esmeta.ServiceAccountSelector `json:"serviceAccountRef,omitempty"`
 }
 }
 
 
-// ECRAuthorizationTokenSpec uses the GetAuthorizationToken API to retrieve an
-// authorization token.
+// ECRAuthorizationToken uses the GetAuthorizationToken API to retrieve an authorization token.
 // The authorization token is valid for 12 hours.
 // The authorization token is valid for 12 hours.
 // The authorizationToken returned is a base64 encoded string that can be decoded
 // The authorizationToken returned is a base64 encoded string that can be decoded
 // and used in a docker login command to authenticate to a registry.
 // and used in a docker login command to authenticate to a registry.

+ 4 - 0
apis/generators/v1alpha1/types_gcr.go

@@ -23,6 +23,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// GCRAccessTokenSpec defines the desired state to generate a Google Container Registry access token.
 type GCRAccessTokenSpec struct {
 type GCRAccessTokenSpec struct {
 	// Auth defines the means for authenticating with GCP
 	// Auth defines the means for authenticating with GCP
 	Auth GCPSMAuth `json:"auth"`
 	Auth GCPSMAuth `json:"auth"`
@@ -30,6 +31,7 @@ type GCRAccessTokenSpec struct {
 	ProjectID string `json:"projectID"`
 	ProjectID string `json:"projectID"`
 }
 }
 
 
+// GCPSMAuth defines the authentication methods for Google Cloud Platform.
 type GCPSMAuth struct {
 type GCPSMAuth struct {
 	// +optional
 	// +optional
 	SecretRef *GCPSMAuthSecretRef `json:"secretRef,omitempty"`
 	SecretRef *GCPSMAuthSecretRef `json:"secretRef,omitempty"`
@@ -39,12 +41,14 @@ type GCPSMAuth struct {
 	WorkloadIdentityFederation *esv1.GCPWorkloadIdentityFederation `json:"workloadIdentityFederation,omitempty"`
 	WorkloadIdentityFederation *esv1.GCPWorkloadIdentityFederation `json:"workloadIdentityFederation,omitempty"`
 }
 }
 
 
+// GCPSMAuthSecretRef defines the reference to a secret containing Google Cloud Platform credentials.
 type GCPSMAuthSecretRef struct {
 type GCPSMAuthSecretRef struct {
 	// The SecretAccessKey is used for authentication
 	// The SecretAccessKey is used for authentication
 	// +optional
 	// +optional
 	SecretAccessKey esmeta.SecretKeySelector `json:"secretAccessKeySecretRef,omitempty"`
 	SecretAccessKey esmeta.SecretKeySelector `json:"secretAccessKeySecretRef,omitempty"`
 }
 }
 
 
+// GCPWorkloadIdentity defines the configuration for using GCP Workload Identity authentication.
 type GCPWorkloadIdentity struct {
 type GCPWorkloadIdentity struct {
 	ServiceAccountRef esmeta.ServiceAccountSelector `json:"serviceAccountRef"`
 	ServiceAccountRef esmeta.ServiceAccountSelector `json:"serviceAccountRef"`
 	ClusterLocation   string                        `json:"clusterLocation"`
 	ClusterLocation   string                        `json:"clusterLocation"`

+ 5 - 2
apis/generators/v1alpha1/types_github.go

@@ -22,8 +22,9 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// GithubAccessTokenSpec defines the desired state to generate a GitHub access token.
 type GithubAccessTokenSpec struct {
 type GithubAccessTokenSpec struct {
-	// URL configures the Github instance URL. Defaults to https://github.com/.
+	// URL configures the GitHub instance URL. Defaults to https://github.com/.
 	URL       string `json:"url,omitempty"`
 	URL       string `json:"url,omitempty"`
 	AppID     string `json:"appID"`
 	AppID     string `json:"appID"`
 	InstallID string `json:"installID"`
 	InstallID string `json:"installID"`
@@ -36,10 +37,12 @@ type GithubAccessTokenSpec struct {
 	Auth GithubAuth `json:"auth"`
 	Auth GithubAuth `json:"auth"`
 }
 }
 
 
+// GithubAuth defines the authentication configuration for GitHub access.
 type GithubAuth struct {
 type GithubAuth struct {
 	PrivateKey GithubSecretRef `json:"privateKey"`
 	PrivateKey GithubSecretRef `json:"privateKey"`
 }
 }
 
 
+// GithubSecretRef references a secret containing GitHub credentials.
 type GithubSecretRef struct {
 type GithubSecretRef struct {
 	SecretRef esmeta.SecretKeySelector `json:"secretRef"`
 	SecretRef esmeta.SecretKeySelector `json:"secretRef"`
 }
 }
@@ -59,7 +62,7 @@ type GithubAccessToken struct {
 
 
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 
 
-// GithubAccessToken contains a list of ExternalSecret resources.
+// GithubAccessTokenList contains a list of GithubAccessToken resources.
 type GithubAccessTokenList struct {
 type GithubAccessTokenList struct {
 	metav1.TypeMeta `json:",inline"`
 	metav1.TypeMeta `json:",inline"`
 	metav1.ListMeta `json:"metadata,omitempty"`
 	metav1.ListMeta `json:"metadata,omitempty"`

+ 5 - 1
apis/generators/v1alpha1/types_grafana.go

@@ -32,6 +32,7 @@ type GrafanaSpec struct {
 	ServiceAccount GrafanaServiceAccount `json:"serviceAccount"`
 	ServiceAccount GrafanaServiceAccount `json:"serviceAccount"`
 }
 }
 
 
+// GrafanaServiceAccount defines the configuration for a Grafana service account to be created.
 type GrafanaServiceAccount struct {
 type GrafanaServiceAccount struct {
 	// Name is the name of the service account that will be created by ESO.
 	// Name is the name of the service account that will be created by ESO.
 	Name string `json:"name"`
 	Name string `json:"name"`
@@ -41,6 +42,7 @@ type GrafanaServiceAccount struct {
 	Role string `json:"role"`
 	Role string `json:"role"`
 }
 }
 
 
+// GrafanaAuth defines the authentication methods for connecting to a Grafana instance.
 type GrafanaAuth struct {
 type GrafanaAuth struct {
 	// A service account token used to authenticate against the Grafana instance.
 	// A service account token used to authenticate against the Grafana instance.
 	// Note: you need a token which has elevated permissions to create service accounts.
 	// Note: you need a token which has elevated permissions to create service accounts.
@@ -56,6 +58,7 @@ type GrafanaAuth struct {
 	Basic *GrafanaBasicAuth `json:"basic,omitempty"`
 	Basic *GrafanaBasicAuth `json:"basic,omitempty"`
 }
 }
 
 
+// GrafanaBasicAuth defines the credentials for basic authentication with Grafana.
 type GrafanaBasicAuth struct {
 type GrafanaBasicAuth struct {
 	// A basic auth username used to authenticate against the Grafana instance.
 	// A basic auth username used to authenticate against the Grafana instance.
 	Username string `json:"username"`
 	Username string `json:"username"`
@@ -77,6 +80,7 @@ type GrafanaStateServiceAccount struct {
 	ServiceAccountTokenID *int64  `json:"tokenID"`
 	ServiceAccountTokenID *int64  `json:"tokenID"`
 }
 }
 
 
+// Grafana represents a generator for Grafana service account tokens.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
@@ -91,7 +95,7 @@ type Grafana struct {
 
 
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 
 
-// ExternalList contains a list of Grafana Generator resources.
+// GrafanaList contains a list of Grafana Generator resources.
 type GrafanaList struct {
 type GrafanaList struct {
 	metav1.TypeMeta `json:",inline"`
 	metav1.TypeMeta `json:",inline"`
 	metav1.ListMeta `json:"metadata,omitempty"`
 	metav1.ListMeta `json:"metadata,omitempty"`

+ 1 - 0
apis/generators/v1alpha1/types_quay.go

@@ -22,6 +22,7 @@ import (
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 	esmeta "github.com/external-secrets/external-secrets/apis/meta/v1"
 )
 )
 
 
+// QuayAccessTokenSpec defines the desired state to generate a Quay access token.
 type QuayAccessTokenSpec struct {
 type QuayAccessTokenSpec struct {
 	// URL configures the Quay instance URL. Defaults to quay.io.
 	// URL configures the Quay instance URL. Defaults to quay.io.
 	URL string `json:"url,omitempty"`
 	URL string `json:"url,omitempty"`

+ 1 - 0
apis/generators/v1alpha1/types_sts.go

@@ -42,6 +42,7 @@ type RequestParameters struct {
 	TokenCode *string `json:"tokenCode,omitempty"`
 	TokenCode *string `json:"tokenCode,omitempty"`
 }
 }
 
 
+// STSSessionTokenSpec defines the desired state to generate an AWS STS session token.
 type STSSessionTokenSpec struct {
 type STSSessionTokenSpec struct {
 	// Region specifies the region to operate in.
 	// Region specifies the region to operate in.
 	Region string `json:"region"`
 	Region string `json:"region"`

+ 9 - 2
apis/generators/v1alpha1/types_vault.go

@@ -23,6 +23,7 @@ import (
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 )
 )
 
 
+// VaultDynamicSecretSpec defines the desired spec of VaultDynamicSecret.
 type VaultDynamicSecretSpec struct {
 type VaultDynamicSecretSpec struct {
 	// Used to select the correct ESO controller (think: ingress.ingressClassName)
 	// Used to select the correct ESO controller (think: ingress.ingressClassName)
 	// The ESO controller is instantiated with a specific controller name and filters VDS based on this property
 	// The ESO controller is instantiated with a specific controller name and filters VDS based on this property
@@ -36,7 +37,7 @@ type VaultDynamicSecretSpec struct {
 	Parameters *apiextensions.JSON `json:"parameters,omitempty"`
 	Parameters *apiextensions.JSON `json:"parameters,omitempty"`
 
 
 	// Result type defines which data is returned from the generator.
 	// Result type defines which data is returned from the generator.
-	// By default it is the "data" section of the Vault API response.
+	// By default, it is the "data" section of the Vault API response.
 	// When using e.g. /auth/token/create the "data" section is empty but
 	// When using e.g. /auth/token/create the "data" section is empty but
 	// the "auth" section contains the generated token.
 	// the "auth" section contains the generated token.
 	// Please refer to the vault docs regarding the result data structure.
 	// Please refer to the vault docs regarding the result data structure.
@@ -60,15 +61,20 @@ type VaultDynamicSecretSpec struct {
 	AllowEmptyResponse bool `json:"allowEmptyResponse,omitempty"`
 	AllowEmptyResponse bool `json:"allowEmptyResponse,omitempty"`
 }
 }
 
 
+// VaultDynamicSecretResultType defines which part of the Vault API response should be returned.
 // +kubebuilder:validation:Enum=Data;Auth;Raw
 // +kubebuilder:validation:Enum=Data;Auth;Raw
 type VaultDynamicSecretResultType string
 type VaultDynamicSecretResultType string
 
 
 const (
 const (
+	// VaultDynamicSecretResultTypeData specifies to return the "data" section of the Vault API response.
 	VaultDynamicSecretResultTypeData VaultDynamicSecretResultType = "Data"
 	VaultDynamicSecretResultTypeData VaultDynamicSecretResultType = "Data"
+	// VaultDynamicSecretResultTypeAuth specifies to return the "auth" section of the Vault API response.
 	VaultDynamicSecretResultTypeAuth VaultDynamicSecretResultType = "Auth"
 	VaultDynamicSecretResultTypeAuth VaultDynamicSecretResultType = "Auth"
-	VaultDynamicSecretResultTypeRaw  VaultDynamicSecretResultType = "Raw"
+	// VaultDynamicSecretResultTypeRaw specifies to return the raw response from the Vault API.
+	VaultDynamicSecretResultTypeRaw VaultDynamicSecretResultType = "Raw"
 )
 )
 
 
+// VaultDynamicSecret represents a generator that can create dynamic secrets from HashiCorp Vault.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 // +kubebuilder:storageversion
 // +kubebuilder:storageversion
 // +kubebuilder:subresource:status
 // +kubebuilder:subresource:status
@@ -81,6 +87,7 @@ type VaultDynamicSecret struct {
 	Spec VaultDynamicSecretSpec `json:"spec,omitempty"`
 	Spec VaultDynamicSecretSpec `json:"spec,omitempty"`
 }
 }
 
 
+// VaultDynamicSecretList contains a list of VaultDynamicSecret resources.
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 type VaultDynamicSecretList struct {
 type VaultDynamicSecretList struct {
 	metav1.TypeMeta `json:",inline"`
 	metav1.TypeMeta `json:",inline"`

+ 9 - 3
apis/generators/v1alpha1/types_webhook.go

@@ -84,14 +84,17 @@ type NTLMProtocol struct {
 	Password esmeta.SecretKeySelector `json:"passwordSecret"`
 	Password esmeta.SecretKeySelector `json:"passwordSecret"`
 }
 }
 
 
+// WebhookCAProviderType defines the type of provider for webhook CA certificates.
 type WebhookCAProviderType string
 type WebhookCAProviderType string
 
 
 const (
 const (
-	WebhookCAProviderTypeSecret    WebhookCAProviderType = "Secret"
+	// WebhookCAProviderTypeSecret indicates the CA provider is a Secret resource.
+	WebhookCAProviderTypeSecret WebhookCAProviderType = "Secret"
+	// WebhookCAProviderTypeConfigMap indicates the CA provider is a ConfigMap resource.
 	WebhookCAProviderTypeConfigMap WebhookCAProviderType = "ConfigMap"
 	WebhookCAProviderTypeConfigMap WebhookCAProviderType = "ConfigMap"
 )
 )
 
 
-// Defines a location to fetch the cert for the webhook provider from.
+// WebhookCAProvider defines a location to fetch the cert for the webhook provider from.
 type WebhookCAProvider struct {
 type WebhookCAProvider struct {
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// The type of provider to use such as "Secret", or "ConfigMap".
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
 	// +kubebuilder:validation:Enum="Secret";"ConfigMap"
@@ -118,12 +121,14 @@ type WebhookCAProvider struct {
 	Namespace *string `json:"namespace,omitempty"`
 	Namespace *string `json:"namespace,omitempty"`
 }
 }
 
 
+// WebhookResult defines how to format and extract results from the webhook response.
 type WebhookResult struct {
 type WebhookResult struct {
 	// Json path of return value
 	// Json path of return value
 	// +optional
 	// +optional
 	JSONPath string `json:"jsonPath,omitempty"`
 	JSONPath string `json:"jsonPath,omitempty"`
 }
 }
 
 
+// WebhookSecret defines a secret reference that will be used in webhook templates.
 type WebhookSecret struct {
 type WebhookSecret struct {
 	// Name of this secret in templates
 	// Name of this secret in templates
 	Name string `json:"name"`
 	Name string `json:"name"`
@@ -132,6 +137,7 @@ type WebhookSecret struct {
 	SecretRef SecretKeySelector `json:"secretRef"`
 	SecretRef SecretKeySelector `json:"secretRef"`
 }
 }
 
 
+// SecretKeySelector defines a reference to a specific key within a Kubernetes Secret.
 type SecretKeySelector struct {
 type SecretKeySelector struct {
 	// The name of the Secret resource being referred to.
 	// The name of the Secret resource being referred to.
 	// +kubebuilder:validation:MinLength:=1
 	// +kubebuilder:validation:MinLength:=1
@@ -164,7 +170,7 @@ type Webhook struct {
 
 
 // +kubebuilder:object:root=true
 // +kubebuilder:object:root=true
 
 
-// ExternalList contains a list of Webhook Generator resources.
+// WebhookList contains a list of Webhook Generator resources.
 type WebhookList struct {
 type WebhookList struct {
 	metav1.TypeMeta `json:",inline"`
 	metav1.TypeMeta `json:",inline"`
 	metav1.ListMeta `json:"metadata,omitempty"`
 	metav1.ListMeta `json:"metadata,omitempty"`

+ 1 - 1
apis/meta/v1/doc.go

@@ -14,6 +14,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 */
 */
 
 
-// Package meta contains meta types for external-secrets APIs
+// Package v1 contains meta types for external-secrets APIs
 // +kubebuilder:object:generate=true
 // +kubebuilder:object:generate=true
 package v1
 package v1

+ 2 - 2
apis/meta/v1/types.go

@@ -16,7 +16,7 @@ limitations under the License.
 
 
 package v1
 package v1
 
 
-// A reference to a specific 'key' within a Secret resource.
+// SecretKeySelector is a reference to a specific 'key' within a Secret resource.
 // In some instances, `key` is a required field.
 // In some instances, `key` is a required field.
 type SecretKeySelector struct {
 type SecretKeySelector struct {
 	// The name of the Secret resource being referred to.
 	// The name of the Secret resource being referred to.
@@ -42,7 +42,7 @@ type SecretKeySelector struct {
 	Key string `json:"key,omitempty"`
 	Key string `json:"key,omitempty"`
 }
 }
 
 
-// A reference to a ServiceAccount resource.
+// ServiceAccountSelector is a reference to a ServiceAccount resource.
 type ServiceAccountSelector struct {
 type ServiceAccountSelector struct {
 	// The name of the ServiceAccount resource being referred to.
 	// The name of the ServiceAccount resource being referred to.
 	// +kubebuilder:validation:MinLength:=1
 	// +kubebuilder:validation:MinLength:=1

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini