Repository: ansible-collections/community.aws

Issue:
Each `origin` can have connection attempts & timeout
### Summary

As seen in https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Origin.html on each origin from a `CustomOriginConfig` there is the possibility to specify `ConnectionAttempts` and `ConnectionTimeout`.

### Issue Type

Documentation Report

### Component Name

cloudfront_distribution

### Ansible Version

```ansible [core 2.13.3]
  config file = None
  configured module search path = ['/home/gpreda/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/site-packages/ansible
  ansible collection location = /home/gpreda/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.6 (main, Aug  2 2022, 00:00:00) [GCC 12.1.1 20220507 (Red Hat 12.1.1-1)]
  jinja version = 3.0.3
  libyaml = False
```


### Collection Versions

```$ ansible-galaxy collection list

# /usr/local/lib/python3.10/site-packages/ansible_collections
Collection                    Version
----------------------------- -------
amazon.aws                    4.1.0  
...
community.aws                 4.1.1  
...
```


### Configuration

```$ ansible-config dump --only-changed
DEFAULT_ACTION_PLUGIN_PATH(env: ANSIBLE_ACTION_PLUGINS) = ['/usr/local/lib/python3.9/site-packages/ara/plugins/action']
DEFAULT_CALLBACK_PLUGIN_PATH(env: ANSIBLE_CALLBACK_PLUGINS) = ['/usr/local/lib/python3.9/site-packages/ara/plugins/callback']
DEFAULT_LOOKUP_PLUGIN_PATH(env: ANSIBLE_LOOKUP_PLUGINS) = ['/usr/local/lib/python3.9/site-packages/ara/plugins/lookup']
```


### OS / Environment

Fedora release 36, Centos Stream 8

### Additional Information

It's just that these details are missing from the documentation.
I've managed to successfully create a CF distribution w/ the correct settings w/ the following minimal playbook:

```
---
# Standards: 1.2
- name: Try to create a CF distribution w/ ConnectionAttempts and ConnectionTimeout
  hosts: localhost
  tasks:
    - name: create a distribution with an origin, logging and default cache behavior
      community.aws.cloudfront_distribution:
        profile: example-account
        state: present
        caller_reference: test 1
        origins:
          - id: 'my-test-origin-1234'
            domain_name: www.example.com
            custom_origin_config:
              http_port: 80
              https_port: 443
              origin_keepalive_timeout: 10
              origin_read_timeout: 5
            connection_attempts: 2
            connection_timeout: 5
        enabled: true
        comment: Test CloudFront distribution - ConnectionAttempts and ConnectionTimeout
      register: result
    - name: debug
      debug:
        var: result
```

I'll prepare a PR for the docs.

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct


Discussion:
Files identified in the description:
* [`plugins/modules/cloudfront_distribution.py`](https://github.com/['ansible-collections/amazon.aws', 'ansible-collections/community.aws', 'ansible-collections/community.vmware']/blob/main/plugins/modules/cloudfront_distribution.py)

If these files are inaccurate, please update the `component name` section of the description or use the `!component` bot command.

[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: components_banner --->
cc @jillr @markuman @s-hertel @tremble @wilvk
[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)
<!--- boilerplate: notify --->

Resolving patch:
diff --git a/plugins/modules/cloudfront_distribution.py b/plugins/modules/cloudfront_distribution.py
--- a/plugins/modules/cloudfront_distribution.py
+++ b/plugins/modules/cloudfront_distribution.py
@@ -167,7 +167,16 @@
             origin_keepalive_timeout:
               description: A keep-alive timeout (in seconds).
               type: int
-
+        connection_attempts:
+          description: The number of times that CloudFront attempts to connect to the origin.
+                       The minimum number is C(1), the maximum is C(3).
+          type: int
+          default: 3
+        connection_timeout:
+          description: The number of seconds that CloudFront waits when trying to establish a connection to the origin.
+                       The minimum timeout is C(1) second, the maximum is C(10) seconds.
+          type: int
+          default: 10
     purge_origins:
       description: Whether to remove any origins that aren't listed in I(origins).
       default: false
@@ -1276,6 +1285,16 @@
           returned: always
           type: str
           sample: ''
+        connection_attempts:
+          description: The number of times that CloudFront attempts to connect to the origin.
+          returned: always
+          type: int
+          sample: 3
+        connection_timeout:
+          description: The number of seconds that CloudFront waits when trying to establish a connection to the origin.
+          returned: always
+          type: int
+          sample: 10
         s3_origin_config:
           description: Origin access identity configuration for S3 Origin.
           returned: when s3_origin_access_identity_enabled is true


Test patch: