### Apache Airflow Provider(s)

dbt-cloud

### Versions of Apache Airflow Providers

```
apache-airflow-providers-dbt-cloud==2.2.0
```

### Apache Airflow version

2.2.5

### Operating System

Ubuntu 18.04

### Deployment

Composer

### Deployment details

_No response_

### What happened

Instructing `DbtCloudGetJobRunArtifactOperator` to save results in a path like `{{ var.value.base_path }}/dbt_run_warehouse/{{ run_id }}/run_results.json` fails because it contains a path not created yet.


```
Traceback (most recent call last):
  File "/opt/python3.8/lib/python3.8/site-packages/airflow/providers/dbt/cloud/operators/dbt.py", line 216, in execute
    with open(self.output_file_name, "w") as file:
FileNotFoundError: [Errno 2] No such file or directory: '/home/airflow/gcs/data/dbt/dbt_run_warehouse/manual__2022-10-17T22:18:25.469526+00:00/run_results.json'
```


### What you think should happen instead

It should create this path and dump the content of the requested artefact

### How to reproduce

```python
with DAG('test') as dag:
  DbtCloudGetJobRunArtifactOperator(
    task_id='dbt_run_warehouse',
    run_id=12341234,
    path='run_results.json',
    output_file_name='{{ var.value.dbt_base_target_folder }}/dbt_run_warehouse/{{ run_id }}/run_results.json'
```

     

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

:param job_id: The ID of a dbt Cloud job.
    :param account_id: Optional. The ID of a dbt Cloud account.
    :param trigger_reason: Optional. Description of the reason to trigger the job.
        Defaults to "Triggered via Apache Airflow by task <task_id> in the <dag_id> DAG."
    :param steps_override: Optional. List of dbt commands to execute when triggering the job instead of those
        configured in dbt Cloud.
    :param schema_override: Optional. Override the destination schema in the configured target for this job.
    :param wait_for_termination: Flag to wait on a job run's termination.  By default, this feature is
        enabled but could be disabled to perform an asynchronous wait for a long-running job run execution
        using the ``DbtCloudJobRunSensor``.
    :param timeout: Time in seconds to wait for a job run to reach a terminal status for non-asynchronous
        waits. Used only if ``wait_for_termination`` is True. Defaults to 7 days.
    :param check_interval: Time in seconds to check on a job run's status for non-asynchronous waits.
        Used only if ``wait_for_termination`` is True. Defaults to 60 seconds.
    :param additional_run_config: Optional. Any additional parameters that should be included in the API
        request when triggering the job.
    :param deferrable: Run operator in the deferrable mode
    :return: The ID of the triggered dbt Cloud job run.
    """
    template_fields = (
        "dbt_cloud_conn_id",
        "job_id",
        "account_id",
        "trigger_reason",
        "steps_override",
        "schema_override",
        "additional_run_config",
    )
    operator_extra_links = (DbtCloudRunJobOperatorLink(),)
    def __init__(