Repository: planetlabs/planet-client-python

Issue:
Unable to receive zipped deliveries to GCP
**Expected behavior**
Given this style `cloudconfig.json` file, as specified in order_request ([here](https://github.com/planetlabs/planet-client-python/blob/main/planet/order_request.py#L165-L200)) and validated in specs ([here](https://github.com/planetlabs/planet-client-python/blob/main/planet/specs.py#L88-L91)) I expect to be able to receive a zipped file delivered my GCS bucket.

```console
{
    "google_cloud_storage": {
        "bucket": "pfed_external_share",
        "path_prefix": "zip_test",
        "credentials": "my-creds"
    },
    "archive_type": "zip"
}
```

Untested, but this might be a global issue (i.e., an issue with AWS, GCS, Azure, etc.).

**Actual behavior (describe the problem)**
My order is not delivered zipped.

**Related Issues**
N/A

**Workaround**
N/A

**Minimum, Complete, Viable Code Sample**
Apparently, one must also set a `"archive_filename"`  (e.g. `"archive_filename": "{{name}}_{{order_id}}.zip"` ) or use `"single_archive": true` to actually get zipped deliveries.

```console
{
    "google_cloud_storage": {
        "bucket": "pfed_external_share",
        "path_prefix": "zip_test",
        "credentials": "my-creds"
    },
    "archive_type": "zip",
    "archive_filename": "{{name}}_{{order_id}}.zip"
}
```
or
```console
{
    "google_cloud_storage": {
        "bucket": "pfed_external_share",
        "path_prefix": "zip_test",
        "credentials": "my-creds"
    },
    "archive_type": "zip",
    "single_archive": true
}
```


Discussion:
kevinlacaille: Great work, @JSee98!

1. I changed the PR to merge to `main`. I'll be sure to resolve the minor merge conflicts we're running into.
2. Below is a summary of what I'm seeing:

**Previously:**
```python
planet.order_request.delivery("zip") 
#returns {'archive_type': 'zip'}

planet.order_request.delivery("zip", archive_filename="test.zip")
#returns {'archive_type': 'zip', 'archive_filename': 'test.zip'}
```

**Now:**
```python
planet.order_request.delivery("zip") 
#returns {'archive_type': 'zip', 'single_archive': True}

planet.order_request.delivery("zip", archive_filename="test.zip")
#returns {'archive_type': 'zip', 'archive_filename': 'test.zip'}
```
This satisfies the desired logic where the delivery object should contain either:
```console
    "archive_type": "zip",
    "single_archive": true
```
or
```console
    "archive_type": "zip",
    "archive_filename": "{{name}}.zip"
```

Now, I just need to verify that an order actually delivers to a bucket (e.g., GCP bucket) using both of those methods.

Patch:
diff --git a/.gitignore b/.gitignore
index 3088081..7d69a81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,5 @@ coverage.xml
 
 # Editors
 .vscode/
-
 # Docs build
 site
diff --git a/planet/order_request.py b/planet/order_request.py
index 51baa9f..f36644c 100644
--- a/planet/order_request.py
+++ b/planet/order_request.py
@@ -199,6 +199,10 @@ def delivery(archive_type: Optional[str] = None,
     if archive_type:
         archive_type = specs.validate_archive_type(archive_type)
 
+        # for missing archive file name
+        if archive_filename is None:
+            archive_filename = "{{name}}_{{order_id}}.zip"
+
     fields = ['archive_type', 'single_archive', 'archive_filename']
     values = [archive_type, single_archive, archive_filename]
 


Test patch:
diff --git a/tests/unit/test_order_request.py b/tests/unit/test_order_request.py
index 0fc21db..e702cce 100644
--- a/tests/unit/test_order_request.py
+++ b/tests/unit/test_order_request.py
@@ -160,6 +160,31 @@ def test_delivery():
     assert delivery_config == expected
 
 
+def test_delivery_missing_archive_details():
+    as3_config = {
+        'amazon_s3': {
+            'aws_access_key_id': 'aws_access_key_id',
+            'aws_secret_access_key': 'aws_secret_access_key',
+            'bucket': 'bucket',
+            'aws_region': 'aws_region'
+        }
+    }
+    delivery_config = order_request.delivery(archive_type='zip',
+                                             cloud_config=as3_config)
+
+    expected = {
+        'archive_type': 'zip',
+        'archive_filename': "{{name}}_{{order_id}}.zip",
+        'amazon_s3': {
+            'aws_access_key_id': 'aws_access_key_id',
+            'aws_secret_access_key': 'aws_secret_access_key',
+            'bucket': 'bucket',
+            'aws_region': 'aws_region'
+        }
+    }
+    assert delivery_config == expected
+
+
 def test_amazon_s3():
     as3_config = order_request.amazon_s3('aws_access_key_id',
                                          'aws_secret_access_key',