Repository: prowler-cloud/prowler

Issue:
[Bug]: cloudfront_distributions_https_enabled false positive
### Steps to Reproduce

Prowler reports cloudfront_distributions_https_enabled as failed when the cloudfront distribution has "Redirect HTTP to HTTPS"  set in viewer protocol policy on behavior.

### Expected behavior

For the example attached, it should "PASS".

### Actual Result with Screenshots or Logs

```
{
    "ETag": "XXXXXXXX",
    "DistributionConfig": {
        "CallerReference": "1561029664879",
        "Aliases": {
            "Quantity": 1,
            "Items": [
                xxxxxxxxx"
            ]
        },
        "DefaultRootObject": "",
        "Origins": {
            "Quantity": 1,
            "Items": [
                {
                    "Id": "xxxxxxxx",
                    "DomainName": "xxxxxxxx",
                    "OriginPath": "",
                    "CustomHeaders": {
                        "Quantity": 0
                    },
                    "S3OriginConfig": {
                        "OriginAccessIdentity": ""
                    },
                    "ConnectionAttempts": 3,
                    "ConnectionTimeout": 10,
                    "OriginShield": {
                        "Enabled": false
                    },
                    "OriginAccessControlId": ""
                }
            ]
        },
        "OriginGroups": {
            "Quantity": 0
        },
        "DefaultCacheBehavior": {
            "TargetOriginId": "xxxxxxxx",
            "TrustedSigners": {
                "Enabled": false,
                "Quantity": 0
            },
            "TrustedKeyGroups": {
                "Enabled": false,
                "Quantity": 0
            },
            "ViewerProtocolPolicy": "redirect-to-https",
            "AllowedMethods": {
                "Quantity": 2,
                "Items": [
                    "HEAD",
                    "GET"
                ],
                "CachedMethods": {
                    "Quantity": 2,
                    "Items": [
                        "HEAD",
                        "GET"
                    ]
                }
            },
            "SmoothStreaming": false,
            "Compress": true,
            "LambdaFunctionAssociations": {
                "Quantity": 0
            },
            "FunctionAssociations": {
                "Quantity": 0
            },
            "FieldLevelEncryptionId": "",
            "ResponseHeadersPolicyId": "4dde66c4-bea6-48eb-9d5c-520b29617292",
            "ForwardedValues": {
                "QueryString": true,
                "Cookies": {
                    "Forward": "none"
                },
                "Headers": {
                    "Quantity": 2,
                    "Items": [
                        "Origin",
                        "Referer"
                    ]
                },
                "QueryStringCacheKeys": {
                    "Quantity": 0
                }
            },
            "MinTTL": 0,
            "DefaultTTL": 86400,
            "MaxTTL": 31536000
        },
        "CacheBehaviors": {
            "Quantity": 0
        },
        "CustomErrorResponses": {
            "Quantity": 0
        },
        "Comment": "xxxxxxx",
        "Logging": {
            "Enabled": true,
            "IncludeCookies": false,
            "Bucket": "xxxxxxx",
            "Prefix": "xxxxxxx"
        },
        "PriceClass": "PriceClass_100",
        "Enabled": true,
        "ViewerCertificate": {
            "CloudFrontDefaultCertificate": false,
            "ACMCertificateArn": "xxxxxxxx",
            "SSLSupportMethod": "sni-only",
            "MinimumProtocolVersion": "TLSv1.2_2021",
            "Certificate": "xxxxxxxxxxxxx",
            "CertificateSource": "acm"
        },
        "Restrictions": {
            "GeoRestriction": {
                "RestrictionType": "none",
                "Quantity": 0
            }
        },
        "WebACLId": "",
        "HttpVersion": "http2and3",
        "IsIPV6Enabled": true,
        "ContinuousDeploymentPolicyId": "",
        "Staging": false
    }
}
```

### How did you install Prowler?

Docker (docker pull toniblyx/prowler)

### Environment Resource

7. Workstation

### OS used

5. Docker

### Prowler version

3.5.3

### Pip version

From official docker image

### Context

_No response_


Discussion:

Resolving patch:
diff --git a/prowler/providers/aws/services/cloudfront/cloudfront_service.py b/prowler/providers/aws/services/cloudfront/cloudfront_service.py
--- a/prowler/providers/aws/services/cloudfront/cloudfront_service.py
+++ b/prowler/providers/aws/services/cloudfront/cloudfront_service.py
@@ -1,4 +1,3 @@
-from dataclasses import dataclass
 from enum import Enum
 from typing import Optional
 
@@ -140,9 +139,8 @@ class GeoRestrictionType(Enum):
     whitelist = "whitelist"
 
 
-@dataclass
-class DefaultCacheConfigBehaviour:
-    realtime_log_config_arn: str
+class DefaultCacheConfigBehaviour(BaseModel):
+    realtime_log_config_arn: Optional[str]
     viewer_protocol_policy: ViewerProtocolPolicy
     field_level_encryption_id: str
 


Test patch:
diff --git a/tests/providers/aws/services/cloudfront/cloudfront_service_test.py b/tests/providers/aws/services/cloudfront/cloudfront_service_test.py
--- a/tests/providers/aws/services/cloudfront/cloudfront_service_test.py
+++ b/tests/providers/aws/services/cloudfront/cloudfront_service_test.py
@@ -6,7 +6,10 @@
 from moto.core import DEFAULT_ACCOUNT_ID
 
 from prowler.providers.aws.lib.audit_info.models import AWS_Audit_Info
-from prowler.providers.aws.services.cloudfront.cloudfront_service import CloudFront
+from prowler.providers.aws.services.cloudfront.cloudfront_service import (
+    CloudFront,
+    ViewerProtocolPolicy,
+)
 
 # Mock Test Region
 AWS_REGION = "eu-west-1"
@@ -247,7 +250,7 @@ def test__list_distributions__complete(self):
             cloudfront.distributions[
                 cloudfront_distribution_id
             ].default_cache_config.viewer_protocol_policy
-            == "https-only"
+            == ViewerProtocolPolicy.https_only
         )
         assert (
             cloudfront.distributions[