diff --git a/configuration/configuration.go b/configuration/configuration.go
index f6b88d84b..36105b841 100644
--- a/configuration/configuration.go
+++ b/configuration/configuration.go
@@ -23,31 +23,7 @@ type Configuration struct {
 
 	// Log supports setting various parameters related to the logging
 	// subsystem.
-	Log struct {
-		// AccessLog configures access logging.
-		AccessLog struct {
-			// Disabled disables access logging.
-			Disabled bool `yaml:"disabled,omitempty"`
-		} `yaml:"accesslog,omitempty"`
-
-		// Level is the granularity at which registry operations are logged.
-		Level Loglevel `yaml:"level,omitempty"`
-
-		// Formatter overrides the default formatter with another. Options
-		// include "text", "json" and "logstash".
-		Formatter string `yaml:"formatter,omitempty"`
-
-		// Fields allows users to specify static string fields to include in
-		// the logger context.
-		Fields map[string]interface{} `yaml:"fields,omitempty"`
-
-		// Hooks allows users to configure the log hooks, to enabling the
-		// sequent handling behavior, when defined levels of log message emit.
-		Hooks []LogHook `yaml:"hooks,omitempty"`
-
-		// ReportCaller allows user to configure the log to report the caller
-		ReportCaller bool `yaml:"reportcaller,omitempty"`
-	}
+	Log Log `yaml:"log"`
 
 	// Loglevel is the level at which registry operations are logged.
 	//
@@ -66,113 +42,7 @@ type Configuration struct {
 
 	// HTTP contains configuration parameters for the registry's http
 	// interface.
-	HTTP struct {
-		// Addr specifies the bind address for the registry instance.
-		Addr string `yaml:"addr,omitempty"`
-
-		// Net specifies the net portion of the bind address. A default empty value means tcp.
-		Net string `yaml:"net,omitempty"`
-
-		// Host specifies an externally-reachable address for the registry, as a fully
-		// qualified URL.
-		Host string `yaml:"host,omitempty"`
-
-		Prefix string `yaml:"prefix,omitempty"`
-
-		// Secret specifies the secret key which HMAC tokens are created with.
-		Secret string `yaml:"secret,omitempty"`
-
-		// RelativeURLs specifies that relative URLs should be returned in
-		// Location headers
-		RelativeURLs bool `yaml:"relativeurls,omitempty"`
-
-		// Amount of time to wait for connection to drain before shutting down when registry
-		// receives a stop signal
-		DrainTimeout time.Duration `yaml:"draintimeout,omitempty"`
-
-		// TLS instructs the http server to listen with a TLS configuration.
-		// This only support simple tls configuration with a cert and key.
-		// Mostly, this is useful for testing situations or simple deployments
-		// that require tls. If more complex configurations are required, use
-		// a proxy or make a proposal to add support here.
-		TLS struct {
-			// Certificate specifies the path to an x509 certificate file to
-			// be used for TLS.
-			Certificate string `yaml:"certificate,omitempty"`
-
-			// Key specifies the path to the x509 key file, which should
-			// contain the private portion for the file specified in
-			// Certificate.
-			Key string `yaml:"key,omitempty"`
-
-			// Specifies the CA certs for client authentication
-			// A file may contain multiple CA certificates encoded as PEM
-			ClientCAs []string `yaml:"clientcas,omitempty"`
-
-			// Client certificate authentication mode
-			// One of: request-client-cert, require-any-client-cert, verify-client-cert-if-given, require-and-verify-client-cert
-			ClientAuth ClientAuth `yaml:"clientauth,omitempty"`
-
-			// Specifies the lowest TLS version allowed
-			MinimumTLS string `yaml:"minimumtls,omitempty"`
-
-			// Specifies a list of cipher suites allowed
-			CipherSuites []string `yaml:"ciphersuites,omitempty"`
-
-			// LetsEncrypt is used to configuration setting up TLS through
-			// Let's Encrypt instead of manually specifying certificate and
-			// key. If a TLS certificate is specified, the Let's Encrypt
-			// section will not be used.
-			LetsEncrypt struct {
-				// CacheFile specifies cache file to use for lets encrypt
-				// certificates and keys.
-				CacheFile string `yaml:"cachefile,omitempty"`
-
-				// Email is the email to use during Let's Encrypt registration
-				Email string `yaml:"email,omitempty"`
-
-				// Hosts specifies the hosts which are allowed to obtain Let's
-				// Encrypt certificates.
-				Hosts []string `yaml:"hosts,omitempty"`
-
-				// DirectoryURL points to the CA directory endpoint.
-				// If empty, LetsEncrypt is used.
-				DirectoryURL string `yaml:"directoryurl,omitempty"`
-			} `yaml:"letsencrypt,omitempty"`
-		} `yaml:"tls,omitempty"`
-
-		// Headers is a set of headers to include in HTTP responses. A common
-		// use case for this would be security headers such as
-		// Strict-Transport-Security. The map keys are the header names, and
-		// the values are the associated header payloads.
-		Headers http.Header `yaml:"headers,omitempty"`
-
-		// Debug configures the http debug interface, if specified. This can
-		// include services such as pprof, expvar and other data that should
-		// not be exposed externally. Left disabled by default.
-		Debug struct {
-			// Addr specifies the bind address for the debug server.
-			Addr string `yaml:"addr,omitempty"`
-			// Prometheus configures the Prometheus telemetry endpoint.
-			Prometheus struct {
-				Enabled bool   `yaml:"enabled,omitempty"`
-				Path    string `yaml:"path,omitempty"`
-			} `yaml:"prometheus,omitempty"`
-		} `yaml:"debug,omitempty"`
-
-		// HTTP2 configuration options
-		HTTP2 struct {
-			// Specifies whether the registry should disallow clients attempting
-			// to connect via HTTP/2. If set to true, only HTTP/1.1 is supported.
-			Disabled bool `yaml:"disabled,omitempty"`
-		} `yaml:"http2,omitempty"`
-
-		H2C struct {
-			// Enables H2C (HTTP/2 Cleartext). Enable to support HTTP/2 without needing to configure TLS
-			// Useful when deploying the registry behind a load balancer (e.g. Cloud Run)
-			Enabled bool `yaml:"enabled,omitempty"`
-		} `yaml:"h2c,omitempty"`
-	} `yaml:"http,omitempty"`
+	HTTP HTTP `yaml:"http,omitempty"`
 
 	// Notifications specifies configuration about various endpoint to which
 	// registry events are dispatched.
@@ -181,31 +51,41 @@ type Configuration struct {
 	// Redis configures the redis pool available to the registry webapp.
 	Redis Redis `yaml:"redis,omitempty"`
 
-	Health  Health  `yaml:"health,omitempty"`
+	// Health provides the configuration section for health checks.
+	// It allows defining various checks to monitor the health of different subsystems.
+	Health Health `yaml:"health,omitempty"`
+
+	// Catalog is composed of MaxEntries.
+	// Catalog endpoint (/v2/_catalog) configuration, it provides the configuration
+	// options to control the maximum number of entries returned by the catalog endpoint.
 	Catalog Catalog `yaml:"catalog,omitempty"`
 
+	// Proxy defines the configuration options for using the registry as a pull-through cache.
 	Proxy Proxy `yaml:"proxy,omitempty"`
 
 	// Validation configures validation options for the registry.
 	Validation Validation `yaml:"validation,omitempty"`
 
 	// Policy configures registry policy options.
-	Policy struct {
-		// Repository configures policies for repositories
-		Repository struct {
-			// Classes is a list of repository classes which the
-			// registry allows content for. This class is matched
-			// against the configuration media type inside uploaded
-			// manifests. When non-empty, the registry will enforce
-			// the class in authorized resources.
-			Classes []string `yaml:"classes"`
-		} `yaml:"repository,omitempty"`
-	} `yaml:"policy,omitempty"`
+	Policy Policy `yaml:"policy,omitempty"`
 }
 
-// Catalog is composed of MaxEntries.
-// Catalog endpoint (/v2/_catalog) configuration, it provides the configuration
-// options to control the maximum number of entries returned by the catalog endpoint.
+// Policy defines configuration options for managing registry policies.
+type Policy struct {
+	// Repository configures policies for repositories
+	Repository Repository `yaml:"repository,omitempty"`
+}
+
+// Repository defines configuration options related to repository policies in the registry.
+type Repository struct {
+	// Classes is a list of repository classes that the registry allows content for.
+	// This value is matched against the media type in uploaded manifests.
+	// If this field is non-empty, the registry enforces that all uploaded
+	// content belongs to one of the specified classes.
+	Classes []string `yaml:"classes"`
+}
+
+// Catalog provides configuration options for the /v2/_catalog endpoint.
 type Catalog struct {
 	// Max number of entries returned by the catalog endpoint. Requesting n entries
 	// to the catalog endpoint will return at most MaxEntries entries.
@@ -213,6 +93,178 @@ type Catalog struct {
 	MaxEntries int `yaml:"maxentries,omitempty"`
 }
 
+// Log represents the configuration for logging within the application.
+type Log struct {
+	// AccessLog configures access logging.
+	AccessLog AccessLog `yaml:"accesslog,omitempty"`
+
+	// Level is the granularity at which registry operations are logged.
+	Level Loglevel `yaml:"level,omitempty"`
+
+	// Formatter overrides the default formatter with another. Options
+	// include "text", "json" and "logstash".
+	Formatter string `yaml:"formatter,omitempty"`
+
+	// Fields allows users to specify static string fields to include in
+	// the logger context.
+	Fields map[string]interface{} `yaml:"fields,omitempty"`
+
+	// Hooks allows users to configure the log hooks, to enabling the
+	// sequent handling behavior, when defined levels of log message emit.
+	Hooks []LogHook `yaml:"hooks,omitempty"`
+
+	// ReportCaller allows user to configure the log to report the caller
+	ReportCaller bool `yaml:"reportcaller,omitempty"`
+}
+
+// AccessLog configures options for access logging.
+type AccessLog struct {
+	// Disabled disables access logging.
+	Disabled bool `yaml:"disabled,omitempty"`
+}
+
+// HTTP defines configuration options for the HTTP interface of the registry.
+type HTTP struct {
+	// Addr specifies the bind address for the registry instance.
+	Addr string `yaml:"addr,omitempty"`
+
+	// Net specifies the net portion of the bind address. A default empty value means tcp.
+	Net string `yaml:"net,omitempty"`
+
+	// Host specifies an externally-reachable address for the registry, as a fully
+	// qualified URL.
+	Host string `yaml:"host,omitempty"`
+
+	// Prefix specifies a URL path prefix for the HTTP interface.
+	// This can be used to serve the registry under a specific path
+	// rather than at the root of the domain (e.g., "/registry").
+	Prefix string `yaml:"prefix,omitempty"`
+
+	// Secret specifies the secret key which HMAC tokens are created with.
+	Secret string `yaml:"secret,omitempty"`
+
+	// RelativeURLs specifies that relative URLs should be returned in
+	// Location headers
+	RelativeURLs bool `yaml:"relativeurls,omitempty"`
+
+	// Amount of time to wait for connection to drain before shutting down when registry
+	// receives a stop signal
+	DrainTimeout time.Duration `yaml:"draintimeout,omitempty"`
+
+	// TLS instructs the http server to listen with a TLS configuration.
+	// This only support simple tls configuration with a cert and key.
+	// Mostly, this is useful for testing situations or simple deployments
+	// that require tls. If more complex configurations are required, use
+	// a proxy or make a proposal to add support here.
+	TLS TLS `yaml:"tls,omitempty"`
+
+	// Headers is a set of headers to include in HTTP responses. A common
+	// use case for this would be security headers such as
+	// Strict-Transport-Security. The map keys are the header names, and
+	// the values are the associated header payloads.
+	Headers http.Header `yaml:"headers,omitempty"`
+
+	// Debug configures the http debug interface, if specified. This can
+	// include services such as pprof, expvar and other data that should
+	// not be exposed externally. Left disabled by default.
+	Debug Debug `yaml:"debug,omitempty"`
+
+	// HTTP2 configures options for HTTP/2 support.
+	HTTP2 HTTP2 `yaml:"http2,omitempty"`
+
+	// H2C configures support for HTTP/2 without requiring TLS (HTTP/2 Cleartext).
+	H2C H2C `yaml:"h2c,omitempty"`
+}
+
+// Debug defines the configuration options for the registry's debug interface.
+// It allows administrators to enable or disable the debug server and configure
+// telemetry and monitoring endpoints such as Prometheus.
+type Debug struct {
+	// Addr specifies the bind address for the debug server.
+	Addr string `yaml:"addr,omitempty"`
+
+	// Prometheus configures the Prometheus telemetry endpoint for monitoring purposes.
+	Prometheus Prometheus `yaml:"prometheus,omitempty"`
+}
+
+// Prometheus configures the Prometheus telemetry endpoint for the registry.
+// It allows administrators to enable Prometheus monitoring and customize
+// the scrape path for metric collection.
+type Prometheus struct {
+	// Enabled determines whether Prometheus telemetry is enabled or not.
+	Enabled bool `yaml:"enabled,omitempty"`
+
+	// Path specifies the URL path where the Prometheus metrics are exposed.
+	// The default is "/metrics", but it can be customized here.
+	Path string `yaml:"path,omitempty"`
+}
+
+// HTTP2 configures options.
+type HTTP2 struct {
+	// Specifies whether the registry should disallow clients attempting
+	// to connect via HTTP/2. If set to true, only HTTP/1.1 is supported.
+	Disabled bool `yaml:"disabled,omitempty"`
+}
+
+// H2C configures support for HTTP/2 Cleartext.
+type H2C struct {
+	// Enables H2C (HTTP/2 Cleartext). Enable to support HTTP/2 without needing to configure TLS
+	// Useful when deploying the registry behind a load balancer (e.g. Cloud Run)
+	Enabled bool `yaml:"enabled,omitempty"`
+}
+
+// TLS defines the configuration options for enabling and configuring TLS (Transport Layer Security)
+// for secure communication between the registry and clients. It allows the registry to listen for
+// HTTPS connections with a specified certificate, key, and optional client authentication settings.
+type TLS struct {
+	// Certificate specifies the path to an x509 certificate file to
+	// be used for TLS.
+	Certificate string `yaml:"certificate,omitempty"`
+
+	// Key specifies the path to the x509 key file, which should
+	// contain the private portion for the file specified in
+	// Certificate.
+	Key string `yaml:"key,omitempty"`
+
+	// Specifies the CA certs for client authentication
+	// A file may contain multiple CA certificates encoded as PEM
+	ClientCAs []string `yaml:"clientcas,omitempty"`
+
+	// Client certificate authentication mode
+	// One of: request-client-cert, require-any-client-cert, verify-client-cert-if-given, require-and-verify-client-cert
+	ClientAuth ClientAuth `yaml:"clientauth,omitempty"`
+
+	// Specifies the lowest TLS version allowed
+	MinimumTLS string `yaml:"minimumtls,omitempty"`
+
+	// Specifies a list of cipher suites allowed
+	CipherSuites []string `yaml:"ciphersuites,omitempty"`
+
+	// LetsEncrypt is used to configuration setting up TLS through
+	// Let's Encrypt instead of manually specifying certificate and
+	// key. If a TLS certificate is specified, the Let's Encrypt
+	// section will not be used.
+	LetsEncrypt LetsEncrypt `yaml:"letsencrypt,omitempty"`
+}
+
+// LetsEncrypt configures automatic TLS certificate provisioning using Let's Encrypt.
+type LetsEncrypt struct {
+	// CacheFile specifies cache file to use for lets encrypt
+	// certificates and keys.
+	CacheFile string `yaml:"cachefile,omitempty"`
+
+	// Email is the email to use during Let's Encrypt registration
+	Email string `yaml:"email,omitempty"`
+
+	// Hosts specifies the hosts which are allowed to obtain Let's
+	// Encrypt certificates.
+	Hosts []string `yaml:"hosts,omitempty"`
+
+	// DirectoryURL points to the CA directory endpoint.
+	// If empty, LetsEncrypt is used.
+	DirectoryURL string `yaml:"directoryurl,omitempty"`
+}
+
 // LogHook is composed of hook Level and Type.
 // After hooks configuration, it can execute the next handling automatically,
 // when defined levels of log message emitted.
@@ -233,19 +285,8 @@ type LogHook struct {
 
 // MailOptions provides the configuration sections to user, for specific handler.
 type MailOptions struct {
-	SMTP struct {
-		// Addr defines smtp host address
-		Addr string `yaml:"addr,omitempty"`
-
-		// Username defines user name to smtp host
-		Username string `yaml:"username,omitempty"`
-
-		// Password defines password of login user
-		Password string `yaml:"password,omitempty"`
-
-		// Insecure defines if smtp login skips the secure certification.
-		Insecure bool `yaml:"insecure,omitempty"`
-	} `yaml:"smtp,omitempty"`
+	// SMTP defines the configuration options for the SMTP server used for sending email notifications.
+	SMTP SMTP `yaml:"smtp,omitempty"`
 
 	// From defines mail sending address
 	From string `yaml:"from,omitempty"`
@@ -254,12 +295,31 @@ type MailOptions struct {
 	To []string `yaml:"to,omitempty"`
 }
 
+// SMTP represents the configuration for an SMTP (Simple Mail Transfer Protocol) server
+// used for sending emails. It includes settings for the SMTP server's address, authentication,
+// and other relevant configurations needed to connect and send emails.
+type SMTP struct {
+	// Addr defines smtp host address
+	Addr string `yaml:"addr,omitempty"`
+
+	// Username defines user name to smtp host
+	Username string `yaml:"username,omitempty"`
+
+	// Password defines password of login user
+	Password string `yaml:"password,omitempty"`
+
+	// Insecure defines if smtp login skips the secure certification.
+	Insecure bool `yaml:"insecure,omitempty"`
+}
+
 // FileChecker is a type of entry in the health section for checking files.
 type FileChecker struct {
 	// Interval is the duration in between checks
 	Interval time.Duration `yaml:"interval,omitempty"`
+
 	// File is the path to check
 	File string `yaml:"file,omitempty"`
+
 	// Threshold is the number of times a check must fail to trigger an
 	// unhealthy state
 	Threshold int `yaml:"threshold,omitempty"`
@@ -269,14 +329,19 @@ type FileChecker struct {
 type HTTPChecker struct {
 	// Timeout is the duration to wait before timing out the HTTP request
 	Timeout time.Duration `yaml:"timeout,omitempty"`
+
 	// StatusCode is the expected status code
 	StatusCode int
+
 	// Interval is the duration in between checks
 	Interval time.Duration `yaml:"interval,omitempty"`
+
 	// URI is the HTTP URI to check
 	URI string `yaml:"uri,omitempty"`
+
 	// Headers lists static headers that should be added to all requests
 	Headers http.Header `yaml:"headers"`
+
 	// Threshold is the number of times a check must fail to trigger an
 	// unhealthy state
 	Threshold int `yaml:"threshold,omitempty"`
@@ -286,10 +351,13 @@ type HTTPChecker struct {
 type TCPChecker struct {
 	// Timeout is the duration to wait before timing out the TCP connection
 	Timeout time.Duration `yaml:"timeout,omitempty"`
+
 	// Interval is the duration in between checks
 	Interval time.Duration `yaml:"interval,omitempty"`
+
 	// Addr is the TCP address to check
 	Addr string `yaml:"addr,omitempty"`
+
 	// Threshold is the number of times a check must fail to trigger an
 	// unhealthy state
 	Threshold int `yaml:"threshold,omitempty"`
@@ -299,26 +367,40 @@ type TCPChecker struct {
 type Health struct {
 	// FileCheckers is a list of paths to check
 	FileCheckers []FileChecker `yaml:"file,omitempty"`
+
 	// HTTPCheckers is a list of URIs to check
 	HTTPCheckers []HTTPChecker `yaml:"http,omitempty"`
+
 	// TCPCheckers is a list of URIs to check
 	TCPCheckers []TCPChecker `yaml:"tcp,omitempty"`
+
 	// StorageDriver configures a health check on the configured storage
 	// driver
-	StorageDriver struct {
-		// Enabled turns on the health check for the storage driver
-		Enabled bool `yaml:"enabled,omitempty"`
-		// Interval is the duration in between checks
-		Interval time.Duration `yaml:"interval,omitempty"`
-		// Threshold is the number of times a check must fail to trigger an
-		// unhealthy state
-		Threshold int `yaml:"threshold,omitempty"`
-	} `yaml:"storagedriver,omitempty"`
+	StorageDriver StorageDriver `yaml:"storagedriver,omitempty"`
 }
 
+// StorageDriver configures health checks specific to the storage driver.
+type StorageDriver struct {
+	// Enabled turns on the health check for the storage driver
+	Enabled bool `yaml:"enabled,omitempty"`
+
+	// Interval is the duration in between checks
+	Interval time.Duration `yaml:"interval,omitempty"`
+
+	// Threshold is the number of times a check must fail to trigger an
+	// unhealthy state
+	Threshold int `yaml:"threshold,omitempty"`
+}
+
+// Platform specifies the characteristics of a computing environment
+// and allows registry administrators to define required platforms for image validation.
+// Administrators can select specific architectures and operating systems that must exist
+// in the registry. This ensures that all image indexes uploaded to the registry are valid
+// for the specified platforms.
 type Platform struct {
 	// Architecture is the architecture for this platform
 	Architecture string `yaml:"architecture,omitempty"`
+
 	// OS is the operating system for this platform
 	OS string `yaml:"os,omitempty"`
 }
@@ -614,6 +696,11 @@ type Proxy struct {
 	TTL *time.Duration `yaml:"ttl,omitempty"`
 }
 
+// ExecConfig defines the configuration for executing a command as a credential helper.
+// This allows the registry to authenticate against an upstream registry by executing a
+// specified command to obtain credentials. The command can be re-executed based on the
+// configured lifetime, enabling the registry to run as a pull-through cache that manages
+// its authentication dynamically.
 type ExecConfig struct {
 	// Command is the command to execute.
 	Command string `yaml:"command"`
@@ -626,33 +713,44 @@ type ExecConfig struct {
 	Lifetime *time.Duration `yaml:"lifetime,omitempty"`
 }
 
+// Validation configures validation options for the registry.
 type Validation struct {
 	// Enabled enables the other options in this section. This field is
 	// deprecated in favor of Disabled.
 	Enabled bool `yaml:"enabled,omitempty"`
+
 	// Disabled disables the other options in this section.
 	Disabled bool `yaml:"disabled,omitempty"`
+
 	// Manifests configures manifest validation.
 	Manifests ValidationManifests `yaml:"manifests,omitempty"`
 }
 
+// ValidationManifests configures validation rules for manifests pushed to the registry.
 type ValidationManifests struct {
 	// URLs configures validation for URLs in pushed manifests.
-	URLs struct {
-		// Allow specifies regular expressions (https://godoc.org/regexp/syntax)
-		// that URLs in pushed manifests must match.
-		Allow []string `yaml:"allow,omitempty"`
-		// Deny specifies regular expressions (https://godoc.org/regexp/syntax)
-		// that URLs in pushed manifests must not match.
-		Deny []string `yaml:"deny,omitempty"`
-	} `yaml:"urls,omitempty"`
+	URLs URLs `yaml:"urls,omitempty"`
+
 	// ImageIndexes configures validation of image indexes
 	Indexes ValidationIndexes `yaml:"indexes,omitempty"`
 }
 
+// URLs defines validation rules for URLs found in the manifests pushed to the registry.
+type URLs struct {
+	// Allow specifies regular expressions (https://godoc.org/regexp/syntax)
+	// that URLs in pushed manifests must match.
+	Allow []string `yaml:"allow,omitempty"`
+
+	// Deny specifies regular expressions (https://godoc.org/regexp/syntax)
+	// that URLs in pushed manifests must not match.
+	Deny []string `yaml:"deny,omitempty"`
+}
+
+// ValidationIndexes configures validation rules for image indexes within the manifest.
 type ValidationIndexes struct {
 	// Platforms configures the validation applies to the platform images included in an image index
 	Platforms Platforms `yaml:"platforms"`
+
 	// PlatformList filters the set of platforms to validate for image existence.
 	PlatformList []Platform `yaml:"platformlist,omitempty"`
 }
@@ -735,17 +833,38 @@ func Parse(rd io.Reader) (*Configuration, error) {
 	return config, nil
 }
 
+// RedisOptions represents the configuration options for Redis, which are
+// provided by the redis package. This struct can be used to configure the
+// connection to Redis in a universal (clustered or standalone) setup.
 type RedisOptions = redis.UniversalOptions
 
+// RedisTLSOptions configures the TLS (Transport Layer Security) settings for
+// Redis connections, allowing secure communication over the network.
 type RedisTLSOptions struct {
-	Certificate string   `yaml:"certificate,omitempty"`
-	Key         string   `yaml:"key,omitempty"`
-	ClientCAs   []string `yaml:"clientcas,omitempty"`
+	// Certificate specifies the path to the certificate file for TLS authentication.
+	// This certificate is used to establish a secure connection with the Redis server.
+	Certificate string `yaml:"certificate,omitempty"`
+
+	// Key specifies the path to the private key file associated with the certificate.
+	// This key is used to authenticate the client during the TLS handshake.
+	Key string `yaml:"key,omitempty"`
+
+	// ClientCAs specifies a list of certificates to be used to verify the server's
+	// certificate during the TLS handshake. This can be used for mutual TLS authentication.
+	ClientCAs []string `yaml:"clientcas,omitempty"`
 }
 
+// Redis represents the configuration for connecting to a Redis server. It includes
+// both the basic connection options and optional TLS settings to secure the connection.
 type Redis struct {
-	Options RedisOptions    `yaml:",inline"`
-	TLS     RedisTLSOptions `yaml:"tls,omitempty"`
+	// Options provides the configuration for connecting to Redis, including
+	// options for both clustered and standalone Redis setups. It is provided inline
+	// from the `redis.UniversalOptions` struct.
+	Options RedisOptions `yaml:",inline"`
+
+	// TLS contains the TLS settings for secure communication with the Redis server.
+	// If specified, these settings will enable encryption and authentication via TLS.
+	TLS RedisTLSOptions `yaml:"tls,omitempty"`
 }
 
 func (c Redis) MarshalYAML() (interface{}, error) {
diff --git a/configuration/configuration_test.go b/configuration/configuration_test.go
index 8718c6596..085fcbb3d 100644
--- a/configuration/configuration_test.go
+++ b/configuration/configuration_test.go
@@ -16,16 +16,7 @@ import (
 // configStruct is a canonical example configuration, which should map to configYamlV0_1
 var configStruct = Configuration{
 	Version: "0.1",
-	Log: struct {
-		AccessLog struct {
-			Disabled bool `yaml:"disabled,omitempty"`
-		} `yaml:"accesslog,omitempty"`
-		Level        Loglevel               `yaml:"level,omitempty"`
-		Formatter    string                 `yaml:"formatter,omitempty"`
-		Fields       map[string]interface{} `yaml:"fields,omitempty"`
-		Hooks        []LogHook              `yaml:"hooks,omitempty"`
-		ReportCaller bool                   `yaml:"reportcaller,omitempty"`
-	}{
+	Log: Log{
 		Level:  "info",
 		Fields: map[string]interface{}{"environment": "test"},
 	},
@@ -69,71 +60,18 @@ var configStruct = Configuration{
 	Catalog: Catalog{
 		MaxEntries: 1000,
 	},
-	HTTP: struct {
-		Addr         string        `yaml:"addr,omitempty"`
-		Net          string        `yaml:"net,omitempty"`
-		Host         string        `yaml:"host,omitempty"`
-		Prefix       string        `yaml:"prefix,omitempty"`
-		Secret       string        `yaml:"secret,omitempty"`
-		RelativeURLs bool          `yaml:"relativeurls,omitempty"`
-		DrainTimeout time.Duration `yaml:"draintimeout,omitempty"`
-		TLS          struct {
-			Certificate  string     `yaml:"certificate,omitempty"`
-			Key          string     `yaml:"key,omitempty"`
-			ClientCAs    []string   `yaml:"clientcas,omitempty"`
-			ClientAuth   ClientAuth `yaml:"clientauth,omitempty"`
-			MinimumTLS   string     `yaml:"minimumtls,omitempty"`
-			CipherSuites []string   `yaml:"ciphersuites,omitempty"`
-			LetsEncrypt  struct {
-				CacheFile    string   `yaml:"cachefile,omitempty"`
-				Email        string   `yaml:"email,omitempty"`
-				Hosts        []string `yaml:"hosts,omitempty"`
-				DirectoryURL string   `yaml:"directoryurl,omitempty"`
-			} `yaml:"letsencrypt,omitempty"`
-		} `yaml:"tls,omitempty"`
-		Headers http.Header `yaml:"headers,omitempty"`
-		Debug   struct {
-			Addr       string `yaml:"addr,omitempty"`
-			Prometheus struct {
-				Enabled bool   `yaml:"enabled,omitempty"`
-				Path    string `yaml:"path,omitempty"`
-			} `yaml:"prometheus,omitempty"`
-		} `yaml:"debug,omitempty"`
-		HTTP2 struct {
-			Disabled bool `yaml:"disabled,omitempty"`
-		} `yaml:"http2,omitempty"`
-		H2C struct {
-			Enabled bool `yaml:"enabled,omitempty"`
-		} `yaml:"h2c,omitempty"`
-	}{
-		TLS: struct {
-			Certificate  string     `yaml:"certificate,omitempty"`
-			Key          string     `yaml:"key,omitempty"`
-			ClientCAs    []string   `yaml:"clientcas,omitempty"`
-			ClientAuth   ClientAuth `yaml:"clientauth,omitempty"`
-			MinimumTLS   string     `yaml:"minimumtls,omitempty"`
-			CipherSuites []string   `yaml:"ciphersuites,omitempty"`
-			LetsEncrypt  struct {
-				CacheFile    string   `yaml:"cachefile,omitempty"`
-				Email        string   `yaml:"email,omitempty"`
-				Hosts        []string `yaml:"hosts,omitempty"`
-				DirectoryURL string   `yaml:"directoryurl,omitempty"`
-			} `yaml:"letsencrypt,omitempty"`
-		}{
+	HTTP: HTTP{
+		TLS: TLS{
 			ClientCAs:  []string{"/path/to/ca.pem"},
 			ClientAuth: ClientAuthVerifyClientCertIfGiven,
 		},
 		Headers: http.Header{
 			"X-Content-Type-Options": []string{"nosniff"},
 		},
-		HTTP2: struct {
-			Disabled bool `yaml:"disabled,omitempty"`
-		}{
+		HTTP2: HTTP2{
 			Disabled: false,
 		},
-		H2C: struct {
-			Enabled bool `yaml:"enabled,omitempty"`
-		}{
+		H2C: H2C{
 			Enabled: true,
 		},
 	},
diff --git a/configuration/parser_test.go b/configuration/parser_test.go
index 4d9e5c7cf..636f3291c 100644
--- a/configuration/parser_test.go
+++ b/configuration/parser_test.go
@@ -13,10 +13,6 @@ type localConfiguration struct {
 	Notifications []Notif `yaml:"notifications,omitempty"`
 }
 
-type Log struct {
-	Formatter string `yaml:"formatter,omitempty"`
-}
-
 type Notif struct {
 	Name string `yaml:"name"`
 }